mysql - 以正确的顺序使用 mysqldump 转储 View

标签 mysql

我有一个备份数据库的脚本,其中包含多个表和从表构建的 View 。

使用的命令是:

mysqldump -u UserName -ppassword -h hostname  DatabaseName > dump.sql;

但是我注意到一些 View 定义在表定义之前被备份。这会导致使用经典恢复时出现问题

mysql -u UserName -p < dump.sql

当它试图创建 View 时,它需要的表还不存在。可以编辑要恢复的转储文件,但我想知道:

有没有办法确保 mysqldump 以正确的顺序备份表和 View ?或者有没有一种方法可以从转储中恢复,该转储将首先找到要创建的正确表(或创建合理的临时表)?

编辑版本:
mysqldump Ver 10.11 Distrib 5.0.51b,适用于 redhat-linux-gnu (x86_64)

最佳答案

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

话虽这么说,如果您使用 -f 标志导入转储,它应该可以解决您的问题,因为“创建 View ”会引发错误,但该 View 仍应创建并在表就位后正常工作.

例子:

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

关于mysql - 以正确的顺序使用 mysqldump 转储 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2479552/

相关文章:

mysql - 如何以自定义格式而不是字母数字方式对 SQL 数据进行排序

mysql - 如何将单个表从 phpmyadmin 导出到逗号分隔的文本文件?

Mysql查询动态将行转换为列

mysql - 数据丢失时删除行 2 joins away

mysql - 使用大于号计数

mysql - 第1548章

java - 如何加快以下 JDBC 插入/导入过程?

php - 如何使用隐藏输入发送选择的值

mysql - 按 Unix 时间戳字段的月份分组

mysql - 挂起DB的SQL语句