我打破了我的 Mysql View 查询。我如何解决它?
Posted
技术标签:
【中文标题】我打破了我的 Mysql View 查询。我如何解决它?【英文标题】:I broke my Mysql View query. How do I fix it? 【发布时间】:2011-01-30 03:33:04 【问题描述】:几个月前,我创建了一个提供上个月交易的 VIEW。我在其他查询中使用该视图。问题是,我更改了 VIEW 中引用的表的一些表名,并在此过程中破坏了 VIEW 查询。现在我的其他查询不再执行。
有什么方法可以查看 VIEW 语句是什么并对其进行编辑以反映新的表名?我正在使用 phpmyadmin,但是每次我尝试转到视图表时,它都会给我一个错误,说它是无效的,但它不会告诉我它是什么......
【问题讨论】:
这里的东西非常相似:***.com/questions/2279240/… 【参考方案1】:如果您知道视图的名称,您可以运行它,它会向您显示创建视图的查询。如果 phpMyAdmin 不允许您运行它,那么您可能必须在命令行中执行它。
SHOW CREATE VIEW view_name
你还应该这样说:
SQL SECURITY DEFINER VIEW `myViewName` AS
紧接着您会找到创建此视图的查询。将其复制并粘贴到文本编辑器中,您可以对其进行更改,使其与您的新表名一起使用。
将其作为普通查询运行以确保其正常工作,然后当您准备用损坏的原始查询替换它时,您可以运行此查询(注意这会删除原始视图!):
DROP VIEW IF EXISTS myViewName;
CREATE VIEW myViewName AS ...(your new query here)...
希望有帮助!
参考资料:
【讨论】:
谢谢。这给了我以下信息:CREATE ALGORITHM=UNDEFINED DEFINER=root
@`localho... 不知道如何解释。
只需将这部分从algorithm
跳过到security definer
。 CREATE VIEW view_name AS SELECT
是您所需要的,尤其是在 SELECT
部分之后。
我添加了更多细节,向您展示如何删除原始视图,使用新查询重新创建它。以上是关于我打破了我的 Mysql View 查询。我如何解决它?的主要内容,如果未能解决你的问题,请参考以下文章
tailwindcss 在我的 Angular 项目中打破了我的一些风格
如何在 MySQL 中打破类似于 MS SQL Server 的列名?