ラベル insert の投稿を表示しています。 すべての投稿を表示
ラベル insert の投稿を表示しています。 すべての投稿を表示

2009年1月26日月曜日

MySQLで INSERT時に重複する KEYが既に存在する場合の動作のオプション


INSERT IGNORE INTO ...

(効能)重複するKEYが既に存在する場合、データは登録されない

INSERT IGNORE INTO members(id, name) VALUES(2, 'TARO');


INSERT INTO ... ON DUPLICATE KEY UPDATE ...
(効能)重複するKEYが既に存在する場合、そのデータをUPDATEする
INSERT INTO members(id, name) VALUES(2, 'TARO') ON DUPLICATE KEY UPDATE cnt = cnt + 1;


REPLACE INTO ...
(効能)重複するKEYが既に存在する場合、そのデータをDELETEしてからINSERTする(※UPDATEではない)

REPLACE INTO members(id, name) VALUES(2, 'TARO');


いずれも、重複するKEYが存在しなければ普通のINSERT文と同じ結果になる。



参考:MySQL :: MySQL 4.1 リファレンスマニュアル :: 6.4.3 INSERT 構文

ブログ アーカイブ

tags