2010-03-21 34 views
2

几个月前,我创建了一个VIEW,为我提供了上个月的交易。我在其他查询中使用该视图。问题在于,我更改了在VIEW中引用的表的一些表名,并在进程中打破了VIEW查询。现在我的其他查询不再执行了。我破坏了我的Mysql View查询。我如何解决它?

有什么方法可以看到VIEW语句是什么,并编辑它以反映新的表名?我使用phpmyadmin,但每次我尝试去查看表,它给了我一个错误,说它是无效的,但它不会告诉我它是什么...

+0

非常类似的东西在这里:http://stackoverflow.com/questions/2279240/how-can-i-edit-a-view-using-phpmyadmin -3-2-4 – 2010-03-21 22:42:19

回答

7

提供您知道的名称您可以运行这个视图,它会显示创建视图的查询。如果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)... 

希望有帮助!

参考文献:

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

谢谢。这给了我以下几点: CREATE ALGORITHM = UNDEFINED DEFINER ='root' @ localho ... 不知道如何解释。 – user77413 2010-03-21 22:43:35

+0

只是将这部分从'算法'跳到'security definer'。 'CREATE VIEW view_name AS SELECT'是你所需要的,特别是'SELECT'部分之后。 – 2010-03-21 22:54:17

+0

我已经添加了一些更详细的信息,向您展示如何删除原始视图,并使用新查询重新创建视图。 – Phillykins 2010-03-21 22:55:47

相关问题