2つの列に一意のキーを持つテーブルがあります。
CREATE TABLE `xpo`.`user_permanent_gift` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`fb_user_id` INT UNSIGNED NOT NULL ,
`gift_id` INT UNSIGNED NOT NULL ,
`purchase_timestamp` TIMESTAMP NULL DEFAULT now() ,
PRIMARY KEY (`id`) ,
UNIQUE INDEX `user_gift_UNIQUE` (`fb_user_id` ASC, `gift_id` ASC) );
そのテーブルに行を挿入したいのですが、キーが存在する場合は何もしません!キーが存在するため、エラーを生成したくありません。
次の構文があることを知っています。
INSERT ... ON DUPLICATE KEY UPDATE ...
しかし、次のようなものがあります:
INSERT ... ON DUPLICATE KEY DO NOTHING
?
はい、INSERT IGNORE
があります。または、ON DUPLICATE KEY UPDATE id=id
を実行できます。
ON DUPLICATE KEY UPDATE ...
を使用し、
Negative:UPDATE
は2番目のアクションにリソースを使用するためです。
INSERT IGNORE ...
を使用し、
ネガティブ:MySQLは、何か問題が発生してもエラーを表示しないため、エラーを処理できません。クエリを気にしない場合にのみ使用してください。