Я хочу вставить сразу несколько строк в таблицу MySQL. Один из столбцов, столбец c, этой таблицы имеет уникальный индекс. Как написать запрос для вставки только новых строк (строк, в которых значение столбца c не равно значению столбца c любой ранее вставленной строки) и игнорировать вставку повторяющихся строк?
Множественная вставка MySQL: как написать запрос для вставки новых строк и игнорирования вставки повторяющихся строк?
Ответы (1)
Вместо insert можно использовать INSERT IGNORE. Запрос будет таким.
INSERT IGNORE INTO person_tbl (last_name, first_name)
VALUES( 'Jay', 'Thomas');
person
praveen_programmer
schedule
24.03.2015
Я пробовал это делать. Но он также вставил повторяющиеся столбцы. Я предполагаю, что ignore означает игнорировать уникальный ключ
- person Swapnanil Saha; 24.03.2015
Помните, что
IGNORE
проигнорирует все ошибки во время вставки, а не только повторяющиеся ключевые ошибки. Часто вместо этого лучше использовать INSERT ... ON DUPLICATE KEY UPDATE
(но тогда только вернуть столбцу его действующее значение), чтобы дублирующиеся записи игнорировались, но другие формы ошибок по-прежнему отмечались.
- person eggyal; 24.03.2015