2010-03-21 33 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

相關問題