MySQL: что делать при ошибке #1062 - Дублирующаяся запись 'ххх' по ключу 'PRIMARY' при INSERT
При выполнении запроса INSERT, взятого из какой-либо другой базы, вполне реально столкнуться с ошибкой “Дублирующаяся запись 'ххх' по ключу 'PRIMARY' при INSERT”. Это значит, что запись с таким первичным ключом уже есть в вашей базе, поэтому вставить в таблицу такую запись нельзя. Можно конечно удалить вручную такой запрос, чтобы скрипт продолжил свое выполнение без него, но что делать, если запросов тысячи? Перебирать все вручную, удаляя дубликаты - не лучшая идея.
Есть несколько решений данной проблемы.
- INSERT автоматически заменить у всех запросов на INSERT IGNORE. В таком случае такие дубликаты будут просто игнорироваться.
- В конце запроса добавить приписку ON DUPLICATE KEY UPDATE. Если будет найден дубликат - то существующая запись будет обновлена новой информацией.
Комментарии