Вставьте Игнорирование В Mysql с первичным ключом

Обновить

December 2018

Просмотры

1.8k раз

2

Я пытаюсь использовать INSERT IGNORE INTO , чтобы добавить строку в таблицу , если она еще не существует.
Вот заявление , как он стоит прямо сейчас:

INSERT IGNORE INTO my_table (integer, date) VALUES (11111, CURDATE())

Однако, так как у меня есть первичный ключ таблицы автоинкрементного (который не является частью вставки, конечно), он всегда делает вставку. Есть ли способ игнорировать первичный ключ, так что, если число и дата уже в таблице не будет вставить еще одну строку с ними?

1 ответы

3

Поставьте уникальный ключ на целое число и дату, или комбинации этих двух - в зависимости от того соответствует вашим потребностям. Это предотвратит INSERT IGNOREот вставки значений , которые нарушают индекс UNIQUE.

Например, если вы хотите сделать комбинацию из двух уникальных:

alter table my_table add unique index(integer, date)