テーブルに存在する場合と存在しない場合があるレコードを更新したいと考えています。データベースに存在しない場合は、挿入されます。
選択を防ぐために、UPDATE
最初にステートメントを使用し、そうでないかどうかを確認affected_rows > 0
してから、このレコードをテーブルに挿入しています。
これを行うためのより良い方法があるかどうか疑問に思っていましたか?
テーブルに存在する場合と存在しない場合があるレコードを更新したいと考えています。データベースに存在しない場合は、挿入されます。
選択を防ぐために、UPDATE
最初にステートメントを使用し、そうでないかどうかを確認affected_rows > 0
してから、このレコードをテーブルに挿入しています。
これを行うためのより良い方法があるかどうか疑問に思っていましたか?
INSERT ... ON DUPLICATE KEY UPDATE
次の構文を使用できます。
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;
http://dev.mysql.com/doc/refman/4.1/en/insert-on-duplicate.html
REPLACE
これと(フェマレフの答え)の違いは、キーが重複している場合は古い行REPLACE
を削除してから新しい行を挿入し、既存の行を更新することです。
Replace
の代わりに使用しInsert
ます。