mysql - 如何修复损坏的 SQL View

标签 mysql view

我正在使用在 MySQL 后端运行的开源 CMS pimcore (http://www.pimcore.org)。

它使用相当复杂的 View 来表示对象,当 View 引用的另一个表中的列被重命名时,其中一个在某个阶段已损坏。每当我尝试通过 SQL 命令与表交互时,都会收到错误消息:

View 'barriste_website.object_6' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

我想简单地更新 View 以引用重命名的列,但在开始查看之前我需要知道 View 的当前结构 - 一旦 View 结构损坏,我该如何检索它?我试过了

SHOW CREATE VIEW object_6

但我收到同样的错误。

提前感谢您的帮助!

最佳答案

MySQL:

SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v';

引用:The INFORMATION_SCHEMA VIEWS Table

SQL 服务器:

USE databasename
GO

EXEC sp_helptext viewName

或者像这样的查询:

SELECT TABLE_NAME as ViewName,
VIEW_DEFINITION as ViewDefinition
FROM INFORMATION_SCHEMA.Views

您可以在其中添加 WHERE 以仅检索一个 View

关于mysql - 如何修复损坏的 SQL View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8150804/

相关文章:

MySQL 唯一索引、索引和全文索引。全部一起还是一个就够了?

php - 使用 strotime 从 mysql db 格式化 CURRENT_TIMESTAMP 然后输出 html

mysql - 从 mysql 中的查询创建 View - mysql 不允许创建 View

ruby-on-rails - 为什么 Rails 会在页面上显示所有信息?

android - 如何在预定时间段更新 View

mysql - SQL 查询只排除最近 24 小时的数据?

mysql - 使用 lampp 安装 gem mysql2

php - 如何在mysql中搜索textarea的每一行数据

Android - 触发 MainActivity 以从自定义 View 执行某些操作

mysql - 使用 Docker 命令从 Mysql 导出 View