我打破了我的Mysql View查询.我如何解决它?

use*_*413 2 mysql phpmyadmin

几个月前,我创建了一个VIEW,它给了我上个月的交易.我在其他查询中使用该视图.问题是,我更改了VIEW中引用的表的一些表名,并且在进程中打破了VIEW查询.现在我的其他查询不再执行了.

有没有办法查看VIEW语句是什么,并编辑它以反映新的表名称?我正在使用phpmyadmin,但每次我尝试去视图表时,它都会给我一个错误,说它无效,但它不会告诉我它是什么...

Phi*_*ins 7

通知您可以运行此视图的名称,它将显示创建视图的查询.如果phpMyAdmin不允许你运行它,那么你可能必须在命令行执行它.

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

你还应该说它像:

SQL SECURITY DEFINER VIEW `myViewName` AS
Run Code Online (Sandbox Code Playgroud)

在此之后,您将找到创建此视图的查询.将其复制并粘贴到文本编辑器中,您可以对其进行更改,使其适用于新的表名.

将其作为普通查询运行以确保其正常工作,然后当您准备将其替换为损坏的原始文件时,您可以运行此查询(请注意这将删除原始视图!):

DROP VIEW IF EXISTS myViewName;

CREATE VIEW myViewName AS ...(your new query here)...
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

参考文献:

  1. http://dev.mysql.com/doc/refman/5.1/en/show-create-view.html