针对视图,oracle提供了check option选项,以保证视图数据的完整性。本节将从以下几个方面分析with check option选项。
1、with check option 仅在视图定义中含有where子句的情况下起作用。
with check option 选项可以保证视图数据完整性。
例子:首先修改视图vw_employees的定义----只选择员工ID大于3的记录,同时使用with check option选项,响应的SQL语句如下所示。
SQL>create or replace view vw_employees as
select employee_id, employee_name, employee_position from employees
where employee_id >3
with check option;
其中,select employee_id、employee_name 和employee_position from employees where employee_id >3用于定义视图查询-----选择表employees中employee_id大于3的记录。此时,可以查询视图中的数据,响应的SQL语句如下所示。
select * from vw_employees;
2、with check option 选项仅对insert/update操作有效。
with check option 选项并非对所有DML操作均起作用,而只针对insert/update 操作有效。在试验了update操作之后,可以再次测试对insert操作的影响。
例子:尝试向视图vw_employees中,插入employee_id为2的数据。
SQL>insert into vw_employees