create view with check option

手册介绍:

WITH CHECK OPTION Specify WITH CHECK OPTION to indicate that Oracle
Database prohibits any changes to the table or view that would produce rows that are
not included in the subquery. When used in the subquery of a DML statement, you
can specify this clause in a subquery in the FROM clause but not in subquery in the
WHERE clause.

with check option可以这么解释:通过视图进行的修改,必须也能通过该视图看到修改后的结果。比如你insert,那么加的这条记录在刷新视图后必须可以看到;如果修改,修改完的结果也必须能通过该视图看到;如果删除,当然只能删除视图里有显示的记录。

SQL> select * from dept;

DEPT_ID DEPT_NAME
---------- --------------------
1 a
2 b

SQL> create view v_dept as select * from dept where dept_id>1 with check option;


视图已创建。

SQL> insert into v_dept values(1,'a');
insert into v_dept values(1,'a')
*
第 1 行出现错误:
ORA-01402: 视图 WITH CHECK OPTIDN where 子句违规


SQL> insert into v_dept values(2,'a');

已创建 1 行。

SQL> rollback;

回退已完成。

SQL> select * from v_dept;

DEPT_ID DEPT_NAME
---------- --------------------
2 b

SQL> update v_dept set dept_id=1;
update v_dept set dept_id=1
*
第 1 行出现错误:
ORA-01402: 视图 WITH CHECK OPTIDN where 子句违规


SQL> update v_dept set dept_id=3;

已更新 1 行。

SQL> rollback;

回退已完成。

[@more@]

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

转载于:http://blog.itpub.net/9533994/viewspace-1022930/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值