我想通过 ssh 导入一个转储 sql 文件,例如:
mysql -hlocalhost -uUSER -pPASS DATABASE < dump.sql
但它实际上覆盖并删除了旧数据库。转储标记为“如果存在则删除表”,但为什么它会删除旧条目?此转储应该将新(唯一)条目添加到数据库中,但它会删除旧的数据库条目。
有没有办法避免这种情况?
谢谢。
转储标记为“如果存在则删除表”,但为什么它会删除旧条目?
正是这样DROP TABLE IF EXISTS
做的;如果表在那里,它与其中的所有行一起被删除(删除)。
创建转储时,您可以添加--skip-add-drop-table
选项。
您可以将各种选项传递给 MySQLDump,以便脚本只包含您需要的内容(例如,省略创建表语句并仅插入数据):http ://dev.mysql.com/doc/refman/5.1/en/ mysqldump.html
我认为您特别对 --no-create-info 和 --no-create-db 感兴趣。
如果您需要使用已有的转储,只需手动删除有问题的“DROP TABLE”行。