開發人員創建了一個利用視圖的MySQL數據庫。在他離開項目之後,我試圖使用phpMyAdmin在生產服務器(共享主機)上導入數據庫,並扼殺了視圖。如何導入sql與phpmyadmin有意見?
如何導入帶有視圖的SQL?
開發人員創建了一個利用視圖的MySQL數據庫。在他離開項目之後,我試圖使用phpMyAdmin在生產服務器(共享主機)上導入數據庫,並扼殺了視圖。如何導入sql與phpmyadmin有意見?
如何導入帶有視圖的SQL?
這些視圖只能被轉儲爲「創建」查詢。視圖中的數據不應該被轉儲/加載,因爲這只是底層表中任何內容的重複。
據我所知,phpMyAdmin不會嘗試解釋您在SQL命令窗體中鍵入的任何代碼(或從文件導入時)。它只是將這些命令傳遞給MySQL。
請確保您的MySQL版本是5.0或更高版本,因爲它只支持自該版本以來的視圖。發佈錯誤消息。
我可以在phpMyAdmin中看到一個選項來導出一個沒有視圖數據的整個數據庫。 我能找到的唯一解決方法是從表選擇器中排除「視圖」,然後單獨導出每個視圖。 然後,我可以導入主轉儲 - 這讓我返回我的表,然後導入每個導出的創建視圖sql文件。 當然,它一定比這更容易?
好的 - 我已經解決了我的情況。 正在閱讀PMA錯誤頁面,結果表明在我使用的舊版本PMA的導出例程中存在一個錯誤。 解決方案:更新PMA。 (很簡單,檢查你的MySQL和PHP兼容,獲取最新版本,並將文件複製到你現有的phpMyAdmin文件夾中,如果你願意,可以重新啓動)。
對於原始問題: 導出sql文件創建不正確。在編輯器中打開它,搜索:
INSERT INTO your view name
(Fields...
)VALUES
和刪除每個不正確地導出的視圖這整個塊。 現在檢查你是否有PMA的最新版本,並在你破解之前重新導出它:-)
視圖應該被轉儲爲「創建」查詢。視圖中的數據不應該被轉儲/加載,因爲這只是底層表中任何內容的重複。 –
謝謝,我認爲這是問題所在。如果你添加你的評論作爲答案,我會給你答案。 – mariachimike