ITPub博客

首页 > IT基础架构 > 网络安全 > create view with check option

create view with check option

原创 网络安全 作者:jlttt 时间:2009-06-09 15:32:55 0 删除 编辑

手册介绍:

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博客 ” ,链接:https://blog.itpub.net/9533994/viewspace-1022930/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: supplemental logging
请登录后发表评论 登录
全部评论

注册时间:2008-06-28

  • 博文量
    75
  • 访问量
    686125