Вставить ... на дубликат ключа (ничего не делать)
у меня есть таблица с уникальным ключом для двух столбцов:
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
?
2 ответа:
Пожалуйста, Используйте
INSERT ... ON DUPLICATE KEY IGNORE
Я не рекомендую использовать
ON DUPLICATE KEY UPDATE ...
илиINSERT IGNORE
потому что обновление использовать ресурс для других действий, иINSERT IGNORE
только используйте, если вы не заботитесь об этом запросе, потому что mysql не отправляет ошибка, если вы вставляете что-то и не можете ничего хендлинг!