Uniqueなキーが存在するテーブルに値を挿入するとき、一旦SELECTして存在を確かめてから挿入する(存在していればUPDATE)か、無理矢理INSERTしてエラーメッセージで重複しているかどうか判断した上でUPDATEするか…なんてことを今までやっていました。

さすがになんか書き方があるんだろうとか思って、とりあえず思いついたのは「IF」とか「EXISTS」とかでググってたんだけども、もっと全然シンプルな話だったんですね。。

重複キーがあれば無視する。

INSERT IGNORE INTO table (f1,f2) VALUES ('d1','d2');

重複キーがあればアップデート。

INSERT INTO table (f1,f2) VALUES ('d1','d2') ON DUPLICATE KEY UPDATE f2='d2';
 



あああ。穴があったら入りたい。