【发布时间】:2018-04-15 08:46:14
【问题描述】:
是否可以使用如下命令将另一个 sql 附加到现有表数据中。
$ mysql -u username -p -h localhost DATA-BASE-NAME < data.sql
此命令将覆盖现有的表数据。
着眼于追加到现有而不是覆盖。
有什么命令吗?
【问题讨论】:
-
这将执行 data.sql 中包含的任何内容(就像您从通常执行这些操作的任何位置执行这些语句一样)。如果 data.sql 文件包含删除和重新创建表及其数据的命令,它将执行此操作。 (这通常是您进行备份时的情况)。如果它会例如只包含插入,它会追加数据。
-
在命令提示符下使用这种风格的命令,有什么方法可以按照你提到的那样做吗?此类命令的任何开关? mysqldump --user=xxxxxx --password=xxxxxx xxxxxx zzzzzz > aaaaaaa.sql
-
mysqldump --no-create-info可能会做你想做的事。但它不会(在导入时)检查已经存在的数据;它需要一个空数据库,如果已经有数据,它可能会或可能不会正常工作。如果您有更复杂的要求(并且“复杂”的标准非常低,因为已经像“复杂”一样具有自动增量 ID 可能不会像您希望的那样自动工作)