我有一个包含三个表的数据库。
我想在第二张表中创建一些记录的备份文件:
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/