使用mysqldump以正确的顺序转储视图

时间:2010-03-19 18:06:50

标签: mysql mysqldump

我有一个备份数据库的脚本,它包含从表构造的多个表和视图。

使用的命令是: 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)

1 个答案:

答案 0 :(得分:2)

根据我的经验,mysqldump总是在所有“create table”语句之后将“create view”语句放在最后。所以我不确定你为什么遇到问题。

话虽如此,如果您使用-f标志导入转储它应该解决您的问题,因为“创建视图”将引发错误,但是仍然应该创建视图并且一旦表格到位就正常工作

示例:

mysql -f -u UserName -p < dump.sql