[MySQL] INSERTしようとしているレコードとユニークキーが重複するレコードがすでに存在する場合に、UPDATEにしてくれる便利なSQL構文

挿入しようとしているデータの主キー(またはユニークキー)を持つレコードが存在するかチェックして、レコードがなければinsert、あればupdateをするのは、クソめんどうくさいですね。

INSERT … ON DUPLICATE KEY UPDATE というのを使います。

通常、こんなSQLでINSERTを行いますね。

上記SQLの後ろに”ON DUPLICATE KEY UPDATE”をつけると、ユニークキーが重複するレコードがすでにある場合は

こう。

具体的にはこんな感じかな。

INSERT使用とした値に更新したい場合は、VALUES(挿入対象の列名)でINSERT使用とした値を使用できます。