Mysql

導入時轉儲 mysql 表替換了現有記錄

  • September 3, 2019

我使用 mysqldump 進行了轉儲..

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

然後我將轉儲導入另一個具有相同表但不同記錄的數據庫中。

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

導入 db 的記錄從 primary_key 1 到 1000,導出 db 有 5000 到 10,000..

但是在導入現有記錄時,即 1 到 1000 被刪除..

如何??為什麼??如果它是預設行為,我可以提供哪些選項來轉儲以防止下次發生..

預設情況下,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。

引用自:https://dba.stackexchange.com/questions/33807