Дамп таблицы mysql при импорте заменил существующие записи


9

Я взял дамп с помощью mysqldump ..

mysqldump -u... -p... mydb t1 > mydb_table.sql

Затем я импортировал дамп в другую базу данных, имеющую ту же таблицу, но разные записи.

mysql -u...-p... mydb < mydb_tables.sql

Импортирующая БД имела записи от primary_key 1 до 1000, а экспортирующая БД имела от 5000 до 10000 ..

Но при импорте были удалены существующие записи, т.е. от 1 до 1000.

Как?? Почему?? Если это поведение по умолчанию, какие опции я могу дать дампу, чтобы не допустить этого в следующий раз ..

Ответы:


12

По умолчанию mysqldump удалит таблицу. Вы должны указать эту --no-create-infoопцию следующим образом:

mysqldump -u... -p... --no-create-info --skip-extended-insert mydb t1 > mydb_table.sql

Таким образом, вы имеете дело только со вставками. Использование --skip-extended-insertвставит одну строку за раз. Это поможет справиться с дублирующимися проблемами, но у вас будет импорт следующим образом:

mysql -u...-p... --force mydb < mydb_tables.sql

--forceВариант с единственной целью продолжения вставки в случае встречается дубликат ключа. В этом случае ошибочная INSERT ошибка игнорируется и переходит к следующей INSERT.


Можно ли извлечь данные, которые были удалены во время дампа?
Арун Кумареш
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.