导入时转储的mysql表替换了现有记录


9

我使用mysqldump进行了转储。

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

然后,我将转储导入到另一个具有相同表但记录不同的数据库中。

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

导入数据库的记录从primary_key 1到1000,导出数据库的记录从5000到10,000。

但是在导入时,现有记录(即1到1000)被删除了。

怎么样??为什么??如果它是默认行为,那么我可以给转储提供哪些选择,以免下次发生。

Answers:


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。


是否可以检索在转储期间删除的数据?
阿伦·库马里斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.