从单表查询备份还原mysql
我有一个包含三个表的数据库。 我想创建第二个表中某些记录的备份文件:从单表查询备份还原mysql,mysql,Mysql,我有一个包含三个表的数据库。 我想创建第二个表中某些记录的备份文件: mysqldump --opt --user=${USER} --password=${PASS} --databases ${DATABASE} --where="id = $1" mydb Table2 > FILE.sql 问题出在使用此代码进行恢复时 mysql --user=${USER} --password=${PASS} ${DATABASE} < FILE.sql mysql--user=$
mysqldump --opt --user=${USER} --password=${PASS} --databases ${DATABASE} --where="id = $1" mydb Table2 > FILE.sql
问题出在使用此代码进行恢复时
mysql --user=${USER} --password=${PASS} ${DATABASE} < FILE.sql
mysql--user=${user}--password=${PASS}${DATABASE}
它删除整个数据库并仅插入上一代码中选定的记录。
我希望只恢复选定的记录,而不删除其余的记录。在使用mysqldump时,您应该尝试使用
--skip add drop table
选项
这将阻止将删除表项添加到sql导出。使用mysqldump时,应尝试使用
--skip add drop table
选项
这将阻止将删除表条目添加到sql导出。您使用的是[--databases][1]
标志,该标志在转储多个数据库时使用,而在仅转储单个表时不应使用
转储多个数据库。通常,mysqldump会处理第一个名称
命令行上的参数作为数据库名称,以下名称作为
表名。使用此选项,它将所有名称参数视为
数据库名称。CREATE DATABASE和USE语句包含在
在每个新数据库之前输出
避免使用该参数,为了更好地衡量,请使用--no create info
或干脆使用-t
,以确保创建表/删除表命令不在转储文件中您使用的是[--databases][1]
在转储多个数据库时使用的标志,在只转储单个表时不应使用该标志
转储多个数据库。通常,mysqldump会处理第一个名称
命令行上的参数作为数据库名称,以下名称作为
表名。使用此选项,它将所有名称参数视为
数据库名称。CREATE DATABASE和USE语句包含在
在每个新数据库之前输出
避免使用该参数,为了更好地衡量,请使用
--无创建信息
或简单地使用-t
,以确保转储文件中不包含创建表/删除表命令您是否尝试过逐个运行file.sql中的单个查询?当您说它正在删除整个数据库时,它实际上是在重新创建表吗?不是数据库?仅使用值重新创建第二个表您是否尝试过逐个运行FILE.sql中的单个查询?当您说它正在删除整个数据库时,它实际上是在重新创建表吗?不是数据库?仅使用值重新创建第二个表谢谢,最后一件事,我在运行还原时遇到此错误:键“PRIMARY”的重复项“506”如何强制还原所有项?这是因为表中已存在具有该主键的记录。事实上,这在这里已经被问到和回答过了。一种解决方案是加载到临时表中,然后执行插入忽略。。。啊,是的!我怎么忘了!谢谢您,最后一件事,我在运行还原时遇到此错误:键“PRIMARY”的重复条目“506”如何强制还原所有项?这是因为表中已存在具有该主键的记录。事实上,这在这里已经被问到和回答过了。一种解决方案是加载到临时表中,然后执行插入忽略。。。啊,是的!我怎么忘了!