Множественная вставка MySQL: как написать запрос для вставки новых строк и игнорирования вставки повторяющихся строк?

Я хочу вставить сразу несколько строк в таблицу MySQL. Один из столбцов, столбец c, этой таблицы имеет уникальный индекс. Как написать запрос для вставки только новых строк (строк, в которых значение столбца c не равно значению столбца c любой ранее вставленной строки) и игнорировать вставку повторяющихся строк?


person Swapnanil Saha    schedule 24.03.2015    source источник


Ответы (1)


Вместо insert можно использовать INSERT IGNORE. Запрос будет таким.

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