INSERT...ON DUPLICATE KEY UPDATE...
レコードがなければINSERTし、あればUPDATEする。1コマンド内で条件判断してくれる。
INSERT INTO tablename (id, value) VALUES (1, 'AAA') ON DUPLICATE KEY UPDATE value = 'BBB';
id項目が主キーであることが前提条件。
idが1のデータがすでに登録されていれば value項目の値が BBB に変更され、
登録されていなければ (1, 'AAA') のデータが登録される。
最近になって、この構文を知った。
データの有無をチェックして、
InsertコマンドとUpdateコマンドを使い分けるという処理はもう不要
プログラム作成にかかる時間を短縮できそう。
こんなこともできた。
INSERT INTO `tablename ` (id, value) VALUES (1,'AAAA'), (2, 'BBBB'),(3,'CCCC') ON DUPLICATE KEY UPDATE value=VALUES(`value`);
id=1、id=2のデータが登録されている状態で実行したら、1と2のvalue項目の値は
それぞれAAAA、BBBBに更新され、(3,'CCCC')が追加された。
凄すぎる。
タグ:SQL
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image