with check option

with check option的學習
-----------------------------------
A view is created with the following statement:
CREATE VIEW v1
AS SELECT col1, col2, col3, col4
FROM t1
WHERE col4 > 1000
WITH CHECK OPTION
What is the effect of the CHECK OPTION clause?
++++++++++++++++++++++++++++++++
 
A. Any row inserted or updated through view V1 must meet the condition that col4 > 1000.
 
student表: 
95001 李勇 男 20 CS 
95002 劉晨 女 21 IS 
95003 王敏 女 18 MA 
95004 張力 男 19 IS

建立視圖IS_STUDENT顯示“IS”系所有學生的學號、姓名、性別。 
create view IS_STUDENT 
as 
select Sno,Sname,Ssex 
from Student 
where Sdept='IS' 
with check option;

用insert語句向視圖中插入元組('95009','王五','男'),查看基本表student表中插入的數據值。當沒有加上with check option 的時候,可以成功插入,切插入到基本表的年齡和專業都是null。 當加上with check ooption 的時候,就插入失敗了

通過有with check option選項的視圖操作基表(只是面對單表,對連接多表的視圖正在尋找答案),有以下結論: 
首先視圖只操作它可以查詢出來的數據,對於它查詢不出的數據,即使基表有,也不可以通過視圖來操作。 
1.對於update,有with check option,要保證update後,數據要被視圖查詢出來 
2.對於delete,有無with check option都一樣 
4.對於insert,有with check option,要保證insert後,數據要被視圖查詢出來 
對於沒有where 子句的視圖,使用with check option是多餘的

插入後的數據,通過視圖能夠查詢出來就符合WITH CHECK OPTION 否則就不符合

     視圖可以在表能夠使用的任何地方使用,但在對視圖的操作上同表相比有些限制,特別是插入和修改操
作,對視圖的操作將傳遞到基表,所以在表上定義的約束條件和觸發器在視圖上將同樣起作用。 

發佈了39 篇原創文章 · 獲贊 2 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章