【MySQL】上書きINSERTする方法
ここではMySQLで、上書きINSERT(データがなければINSERT、あれば更新)方法を紹介しています。
上書きINSERTする方法
上書きINSERTする方法は、INSERT文にON DUPLICATE KEY UPDATE句を付けて実行します。
例えば、TAB1というCOL1列を主キーとするテーブルに、次のSQLを実行してテーブルにレコードを登録します。
INSERT INTO tab1(col1,col2,col3) VALUES('00004','test','test');
次に↓のSQLを実行するともちろん一意制約エラーとなりますエラーになります。
INSERT INTO tab1(col1,col2,col3) VALUES('00004','test','test');
こういった場合に次のSQLのように、ON DUPLICATE KEY UPDATE句を追加して、もしデータが存在した場合に更新する値を指定します。
INSERT INTO tab1(col1,col2,col3) VALUES('00004','test','test')
ON DUPLICATE KEY UPDATE col2 = 'upd',col3 = 'upd';
これにより、データがない場合はINSERT、データが存在する場合はUPDATEするようになります。