我正在使用在 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/