我有一个包含三个表的数据库。
我想在第二张表中创建一些记录的备份文件:

mysqldump --opt --user=${USER} --password=${PASS} --databases ${DATABASE} --where="id = $1" mydb Table2 > FILE.sql


问题在于使用此代码进行还原。

mysql --user=${USER} --password=${PASS}  ${DATABASE} < FILE.sql


它删除整个数据库,并仅插入上一个代码中的选定记录。
我希望只恢复选定的记录,而不删除其余的记录。

最佳答案

您正在使用[--databases][1]标志,该标志在转储多个数据库时使用,而在仅转储单个表时不使用。


  转储几个数据库。通常,mysqldump对待名字
  命令行上的参数作为数据库名称,后面的名称为
  表名。使用此选项,它将所有名称参数视为
  数据库名称。 CREATE DATABASE和USE语句包含在
  在每个新数据库之前输出。


避免使用该参数,并尽量使用--no-create-info或简单地使用-t来确保create table / drop table命令不在转储文件中

关于mysql - 从单表查询备份还原mysql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39367114/

10-12 00:02
查看更多