アフィリエイト広告を利用しています

2017年10月18日

INSERT...ON DUPLICATE KEY UPDATE構文


 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
【このカテゴリーの最新記事】

posted by db-engineer at 00:00 | Comment(0) | Mysql

この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

検索
最新記事
カテゴリーアーカイブ
プロフィール
db-engineerさんの画像
db-engineer
プロフィール
タグクラウド