1. 程式人生 > 其它 >使用mysql恢復資料時檢視變成表 -九五小龐

使用mysql恢復資料時檢視變成表 -九五小龐

** 問題是這樣的,使用mysqldump備份線上資料庫之後,然後通過mysql 命令列恢復到線下資料庫,發現檢視都成了表。 **
為什麼會這樣呢?這就得聊聊mysql備份恢復的機制了
其實檢視mysqldump備份產生的sql語句,會發現檢視首先會恢復成表,之後再刪除表,新建檢視。

如下圖,可以看到在15572行先建立了v_t_borrow_details表,然後在21322行建立了v_t_borrow_details檢視

這樣是為了避免依賴關係,比如有2個 VIEW: v_a, v_b
v_a 引用 v_b
如果先建 v_a ,那麼它引用的 v_b 還沒有建立,是建不成功的,而先把所有的 view 都弄成表先建一次,表是沒有依賴的,都會建立成功,然後再逐個刪除 view 和建立 view,這時候引用的東東都是以表或 view 的形式存在了,不會因為依賴的物件出問題。
而之所以檢視會變成表了,那是因為在恢復過程中出錯導致了恢復中斷,後面的語句都skipping了。


-----------------------------------
©著作權歸作者所有:來自51CTO部落格作者李永峰Billy的原創作品,請聯絡作者獲取轉載授權,否則將追究法律責任
使用mysql恢復資料時檢視變成表
https://blog.51cto.com/billy98/2059406