INSERT → UPDATEを行うSQL文を記載します。
「ON DUPLICATE KEY UPDATE」構文を利用、プライマリーキーに該当するレコードが
存在しない場合は、INSERT存在する場合は、UPDATEを行います。
動作
テーブル構成
1 2 3 4 5 6 7 8 |
create table sample_table ( no int not null AUTO_INCREMENT comment 'サンプルNO' , name text comment 'サンプル名' , memo text comment '備考' , insert_time TIMESTAMP NULL DEFAULT NULL comment '追加日' , update_time TIMESTAMP NULL DEFAULT NULL comment '更新日' , constraint sample_table_PKC primary key (no) ) comment 'サンプルテーブル' ; |
追加・更新
通常のINSERT文
1 |
INSERT INTO sample_table VALUES (1,'なまえ1','びこう1',NOW(),NOW()); |
通常のUPDATE文
1 2 3 4 5 |
UPDATE sample_table SET name = 'なまえ1a' ,memo = 'びこう1a' ,update_time = NOW() WHERE no = 1 |
INSERT ~ ON DUPLICATE KEY UPDATE
1件
1 2 3 4 5 6 7 |
INSERT INTO sample_table (no, name, memo, insert_time, update_time) VALUES (1,'なまえ1','びこう1',NOW(),NOW()) ON DUPLICATE KEY UPDATE name = VALUES(name) ,memo = VALUES(memo) ,update_time = VALUES(update_time) |
複数件
1 2 3 4 5 6 7 8 |
INSERT INTO sample_table (no, name, memo, insert_time, update_time) VALUES (1,'なまえ1a','びこう1a',NOW(),NOW()) ,(2,'なまえ2','びこう2',NOW(),NOW()) ON DUPLICATE KEY UPDATE name = VALUES(name) ,memo = VALUES(memo) ,update_time = VALUES(update_time) |
コメント