视图中with check option的作用是什么?

探讨了WITH CHECK OPTION在视图创建中的作用及限制条件,特别是当尝试插入不符合视图定义的数据时的行为。
create   view   IS_student   
  as   
  select   sno,sname,sage   
  from   student   
  where   sdept='IS'   
  with   check   option;   
  加上了with   check   option;后,不能执行插入操作:   
    
  insert   into   is_student   
  values('95100','李娜',12)   
    
  什么原因?不加上with   check   option则可以!  


with   check   option可以这么解释:通过视图进行的修改,必须也能通过该视图看到修改后的结果。比如你insert,那么加的这条记录在刷新视图后必须可以看到; 如果修改,修改完的结果也必须能通过该视图看到;如果删除,当然只能删除视图里有显示的记录。   
    
而你只是查询出sdept='is'的纪录,你插入的根本不符合sdept='is'呀,所以就不行

意思就是说在执行Insert的时候,默认情况下sdept是'IS',才满足with   check   option是吗?   
    
DBMS不会自动加上Sdept='IS'吗?因为在视图IS_student是选择所有是‘IS’的学生的啊!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-612026/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16436858/viewspace-612026/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值