with check option(转载)
来源:互联网 发布:黑马java基础班 编辑:程序博客网 时间:2024/06/12 01:06
我们来看下面的例子:
create or replace view testview
as
select empno,ename from emp where ename like ‘M%’
with check option;
这里我们创建了一个视图,并使用了with check option来限制了视图。 然后我们来看一下视图包含的结果:
select * from testview得到:
EMPNO ENAME
———- ———–
7654 MARTIN
7934 MILLER
这两条记录
然后我们在试图将其中一条更新:
update testview
set ename = ‘Mike’
where empno = 7654;
OK,这条更新语句可以执行,并没有什么问题,但是当我们执行另一条更新时:
update testview
set ename = ‘Robin’
where empno = ‘7654′;
就会出现ORA-01402: 视图 WITH CHECK OPTIDN 违反 where 子句的错误,这是因为什么呢?
这是因为前面我们在创建视图时指定了witch check option关键字,这也就是说,更新后的每一条数据仍然要满足创建视图时指定的where条件,所以我们这里发生了错误ORA-01402。
但是需要说明的时 ,虽然指定了with check option,我们还是可以删除视图中的数据。例如上例中,我们可以使用
delete from test where where empno = 7654
--------------------------------------------------------------------------------
我创建一个视图:
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'呀,所以就不行
默认情况下,由于行通过视图进行添加或更新,当其不再符合定义视图的查询的条件时,它们即从视图范围中消失。例如,可创建一个查询,从而定义一个视图以在表中检索所有员工薪水低于 $30,000 的行。如果该员工的薪水涨到了 $32,000,则查询视图时该特定员工将不再出现,因其薪水不符合视图所设的标准。但是,WITH CHECK OPTION 子句强制所有数据修改语句均根据视图执行,以符合定义视图的 SELECT 语句中所设的条件。如果使用该子句,修改行时需考虑到不让它在修改完后从视图中消失。任何可能导致行消失的修改都会被取消,并显示错误信息
转自:http://www.cnblogs.com/brightsky/archive/2010/10/09/1846929.html
- with check option(转载)
- 关于With Check Option(转载)
- WITH CHECK OPTION用法
- with check option
- 视图 WITH CHECK OPTION
- with check option
- with check option
- with check option
- with check option
- 浅析 with check option
- with check option
- WITH CHECK OPTION
- with check option使用
- with check option
- with check option
- with check option和with grant option
- -------视图with check option选项-------------------
- INSERT using WITH CHECK OPTION
- Oracle插入日期型数据
- 跟我一起写 Makefile(十二)
- usaco3.4.1
- vim73 for dos下为自己的汇编语言指定喜欢的语法显示格式
- solr1.4.1添加Analyzer3.1.6GA中文分词器
- with check option(转载)
- 【好书推荐】-人件
- TVS管原理和特性
- Android底层和中间层共同学习系列之android键盘映射
- 华为宣布加入Tizen协会并表示计划用此系统开发手机
- Nokia N9 更新升级到PR1.2,很喜欢文件夹功能
- 网状结构的“数据”区域
- LINUX下串口通信开发
- 简单工厂类