我有一个备份数据库的脚本,它包含从表构造的多个表和视图。
使用的命令是: mysqldump -u UserName -ppassword -h hostname DatabaseName> dump.sql;
但我注意到在表的定义之前备份了一些视图定义。使用经典
进行还原时会出现问题mysql -u UserName -p< dump.sql
当它尝试创建视图时,它所需的表尚不存在。可以编辑要恢复的转储文件,但我想知道:
有没有办法确保mysqldump以正确的顺序备份表和视图?或者有没有办法从转储中恢复,该转储将首先创建正确的表(或创建理智的临时表)?
编辑版本: mysqldump Ver 10.11 Distrib 5.0.51b,适用于redhat-linux-gnu(x86_64)
答案 0 :(得分:2)
根据我的经验,mysqldump总是在所有“create table”语句之后将“create view”语句放在最后。所以我不确定你为什么遇到问题。
话虽如此,如果您使用-f标志导入转储它应该解决您的问题,因为“创建视图”将引发错误,但是仍然应该创建视图并且一旦表格到位就正常工作
示例:
mysql -f -u UserName -p < dump.sql