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?
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 否則就不符合
視圖可以在表能夠使用的任何地方使用,但在對視圖的操作上同表相比有些限制,特別是插入和修改操
作,對視圖的操作將傳遞到基表,所以在表上定義的約束條件和觸發器在視圖上將同樣起作用。