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 構文

3 件のコメント:

huibin さんのコメント...

このブログを拝見させていただきました。
助かりました。ありがとうございます。

floatingdays さんのコメント...

お役に立てて何よりです。

妖怪人間ベロ さんのコメント...

ignore検索ですぐ出てきたので、勉強させていただきました。
ありがとうございます。

ブログ アーカイブ

tags