Дамп таблиці mysql при імпорті замінив існуючі записи


9

Я взяв дамп за допомогою mysqldump ..

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

Потім я імпортував дамп в іншу базу даних, що має ту саму таблицю, але різні записи.

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

Імпортуючий db мав записи від основного_колу від 1 до 1000, а експортувальний db мав від 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, що порушує порушення, ігнорується і переходить до наступного INSERT.


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