Какая запись вызвала вставку INSERT IGNORE? - PullRequest
1 голос
/ 14 декабря 2011

В MySQL, когда INSERT IGNORE ничего не вставляет, возможно ли получить строку, которая вызвала сбой INSERT IGNORE?

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Другой и более правильный подход - использовать LAST_INSERT_ID () in ON DUPLICATE KEY UPDATE

То есть изменить:

INSERT IGNORE INTO the_table (id) VALUES (1);

Кому:

INSERT INTO the_table (id) VALUES (1)
ON DUPLICATE KEY UPDATE
    id = LAST_INSERT_ID(id);

Это не изменит таблицу, но следующий вызов LAST_INSERT_ID () вернет либо идентификатор недавно вставленного элемента, либо последний результат, явно переданный в функцию.

0 голосов
/ 14 декабря 2011

Один из способов добиться этого - добавить поле, которое вы можете использовать в качестве флага, а затем добавить ON DUPLICATE KEY UPDATE dup = dup+1 (или аналогичный) к вашему запросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...