几个月前,我创建了一个VIEW,为我提供了上个月的交易。我在其他查询中使用该视图。问题在于,我更改了在VIEW中引用的表的一些表名,并在进程中打破了VIEW查询。现在我的其他查询不再执行了。我破坏了我的Mysql View查询。我如何解决它?
有什么方法可以看到VIEW语句是什么,并编辑它以反映新的表名?我使用phpmyadmin,但每次我尝试去查看表,它给了我一个错误,说它是无效的,但它不会告诉我它是什么...
几个月前,我创建了一个VIEW,为我提供了上个月的交易。我在其他查询中使用该视图。问题在于,我更改了在VIEW中引用的表的一些表名,并在进程中打破了VIEW查询。现在我的其他查询不再执行了。我破坏了我的Mysql View查询。我如何解决它?
有什么方法可以看到VIEW语句是什么,并编辑它以反映新的表名?我使用phpmyadmin,但每次我尝试去查看表,它给了我一个错误,说它是无效的,但它不会告诉我它是什么...
提供您知道的名称您可以运行这个视图,它会显示创建视图的查询。如果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 ... 不知道如何解释。 – user77413 2010-03-21 22:43:35
只是将这部分从'算法'跳到'security definer'。 'CREATE VIEW view_name AS SELECT'是你所需要的,特别是'SELECT'部分之后。 – 2010-03-21 22:54:17
我已经添加了一些更详细的信息,向您展示如何删除原始视图,并使用新查询重新创建视图。 – Phillykins 2010-03-21 22:55:47
非常类似的东西在这里:http://stackoverflow.com/questions/2279240/how-can-i-edit-a-view-using-phpmyadmin -3-2-4 – 2010-03-21 22:42:19