1. 程式人生 > >Mysql更新檢視限制

Mysql更新檢視限制

老司機直接上路了.

前提:

基本關係如果改變,必須立即反映到設計的檢視上

但是通過檢視去更新則必須注意以下條件:

1、如果檢視有一個基本關係的簡單查詢生成,而且它還包含了基本關係中的主關鍵字或是候選關鍵字,則可以通過這個檢視進行更新操作。
2、不允許對涉及到多個基本關係的檢視進行更新。
3、如果檢視的生成中涉及到聚集或是分組操作,則不允許通過這個檢視進行更新。

ISO標準給出的檢視的可更新充要條件為:

1、沒有指定DISTINCT,即重複元組未從查詢結果中消除;
2、定義查詢的SELECT列表中的每個元素均為列名(而不是常量,表示式或聚合函式),且列名出現不能多於一次;


3、FROM子句只能指定一個表,即檢視必須有一個源表且使用者有請求該表的許可權。如果源表本身就是一個檢視,那麼檢視必須滿足這些條件。因此,排除了基於連線、並(UNION)、交(INTERSECT)或差(EXCEPT)操作的所有檢視;
4、where子句不能包含任何引用了FROM子句的表的巢狀SELECT操作。
5、定義查詢不能有GROUP BY或HAVING子句。

這裡寫圖片描述

關注部落格