1

我想通过 ssh 导入一个转储 sql 文件,例如:

mysql -hlocalhost -uUSER -pPASS DATABASE < dump.sql

但它实际上覆盖并删除了旧数据库。转储标记为“如果存在则删除表”,但为什么它会删除旧条目?此转储应该将新(唯一)条目添加到数据库中,但它会删除旧的数据库条目。

有没有办法避免这种情况?

谢谢。

4

2 回答 2

0

转储标记为“如果存在则删除表”,但为什么它会删除旧条目?

正是这样DROP TABLE IF EXISTS做的;如果表在那里,它与其中的所有行一起被删除(删除)。

创建转储时,您可以添加--skip-add-drop-table选项。

于 2013-02-21T00:36:03.067 回答
0

您可以将各种选项传递给 MySQLDump,以便脚本只包含您需要的内容(例如,省略创建表语句并仅插入数据):http ://dev.mysql.com/doc/refman/5.1/en/ mysqldump.html

我认为您特别对 --no-create-info 和 --no-create-db 感兴趣。

如果您需要使用已有的转储,只需手动删除有问题的“DROP TABLE”行。

于 2013-02-20T23:15:21.573 回答