如何修复损坏的SQL视图

Sim*_*obb 23 mysql view

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

它使用相当复杂的视图来表示对象,并且当视图引用的另一个表中的列被重命名时,其中一个已经在某个阶段被破坏.每当我尝试通过SQL命令与表交互时,我收到错误:

查看'barriste_website.object_6'引用无效的表或列(s)或函数或定义者/调用者缺乏使用它们的权限

我想简单地更新视图以引用重命名的列,但是在开始讨论之前我需要知道视图的当前结构 - 一旦它被破坏,我究竟如何检索视图的结构?我试过了

SHOW CREATE VIEW object_6
Run Code Online (Sandbox Code Playgroud)

但我收到同样的错误.

感谢您的帮助!

Dav*_*ras 26

MySQL的:

SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS
WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'v';
Run Code Online (Sandbox Code Playgroud)

参考:INFORMATION_SCHEMA VIEWS表

SQL Server:

USE databasename
GO

EXEC sp_helptext viewName
Run Code Online (Sandbox Code Playgroud)

或者像这样的查询:

SELECT TABLE_NAME as ViewName,
VIEW_DEFINITION as ViewDefinition
FROM INFORMATION_SCHEMA.Views
Run Code Online (Sandbox Code Playgroud)

你可以在哪里添加一个WHERE只检索一个视图


小智 6

只需使用"drop view object_6"删除视图,然后进入pimcore后端并再次保存该类.然后自动重新生成视图.