пятница, 18 декабря 2015 г.

ERROR 1062 (23000) at line 1: Duplicate entry '1' for key 'PRIMARY'

Нужно было обновить таблицы с нового дампа.
При попытке дампа базы, появляется ошибка:
# mysql -uuser_base -p111 my_db < my_db.sql 
ERROR 1062 (23000) at line 1: Duplicate entry '1' for key 'PRIMARY'

Решение такое, нужно в дампе заменить все INSERT'ы на REPLACE'ы.
# cp my_db.sql my_db.sql_modified
# vim my_db.sql_modified
:%s/INSERT/REPLACE/g
:wq
или через sed:
# sed -i 's/INSERT/REPLACE/g' my_db.sql_modified

Пробуем заново импортировать модифицированный дамп:
# mysql -uuser_base -p111 my_db < my_db.sql_modified && echo OK
OK

Комментариев нет: