mysqlpump 生成不正确的创建 View 查询

标签 mysql

我使用mysqlpump来备份数据库:

mysqlpump --single-transaction --add-drop-database --skip-definer --databases mydatabase --result-file/opt/myservice/backup/export.sql

我的数据库包含多个 View ,其中一部分是在 CREATE VIEW 查询中使用完全错误的 SELECT 导出的,如下所示:

CREATE VIEW `careerpulse-staging`.`user_view` AS SELECT
 1 AS `id`,
 1 AS `name`,
 1 AS `department`,
 1 AS `manager_id`
;

为什么会发生这种情况?我该如何解决?

MySQL版本是5.7

最佳答案

这是预期行为,而不是错误。查看完整转储文件。

无法创建引用其他 View 或表的 View ,除非这些其他 View 或表已经存在。

为了消除潜在的循环依赖,在第一遍中创建虚拟 View ,在创建所有 View 和表后,删除这些虚拟 View 并在第二遍中创建真实 View 。

应该在转储文件末尾附近找到正确的 View 定义。

关于mysqlpump 生成不正确的创建 View 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51001687/

相关文章:

javascript - 与 mysql 连接的 hapi.js 未在浏览器上显示该值

c# - 自动增量和 SQL 的身份

sql - 在表中存储多种格式

python - MySQL Python - 字母数字值的 VARCHAR 问题

mysql - 完全删除 MySQL Ubuntu 14.04 LTS

PHP:如何在使用 PDO 获得的结果集中循环? (如何使用 fetch() ?)

php - 如何将条件附加到 Eloquent 关系查询中?

javascript - 如何从json中删除双引号

php - CodeIgniter:加密不同服务器上应用程序和 mysql 数据库之间的通信?

java - (可能)数百个移动客户端访问 MySQL 数据库的最佳方式是什么?