MySQL - обновить, если все записи равны. ИСКЛЮЧИТЕЛЬНЫЙ ИДЕНТИФИКАЦИЯ

У меня есть база данных, каждая строка присваивает идентификатор AUTO_INCREMENT. Я пытаюсь только INSERT строки, когда она еще не существует, однако в настоящее время я нахожу использование INSERT IGNORE что база данных добавляет новую строку, я считаю, потому что идентификаторы равны? Как я могу получить новую строку, которая будет вставлена только в том случае, если все столбцы равны, за исключением ID?

1 ответ

Вы бы создали уникальный индекс для остальных столбцов:

create unique index idx_table_allcols on table(col1, col2, . . . );

Затем ваш оператор insert проверяет, что новые значения вставляются. INSERT IGNORE не будет вставлять запись и не будет генерировать ошибку.

licensed under cc by-sa 3.0 with attribution.