MySQL: что делать при ошибке #1062 - Дублирующаяся запись 'ххх' по ключу 'PRIMARY' при INSERT

При выполнении запроса INSERT, взятого из какой-либо другой базы, вполне реально столкнуться с ошибкой “Дублирующаяся запись 'ххх' по ключу 'PRIMARY' при INSERT”. Это значит, что запись с таким первичным ключом уже есть в вашей базе, поэтому вставить в таблицу такую запись нельзя. Можно конечно удалить вручную такой запрос, чтобы скрипт продолжил свое выполнение без него, но что делать, если запросов тысячи? Перебирать все вручную, удаляя дубликаты - не лучшая идея. 

Есть несколько решений данной проблемы. 

  1. INSERT  автоматически заменить у всех запросов  на INSERT IGNORE. В таком случае такие дубликаты будут просто игнорироваться. 
  2. В конце запроса добавить приписку ON DUPLICATE KEY UPDATE. Если будет найден дубликат - то существующая запись будет обновлена новой информацией. 

 

Комментарии

Комментариев пока нет, вы можете оставить свой: