with check option的学习
来源:互联网 发布:mac版cad2014破解文件 编辑:程序博客网 时间:2024/04/28 21:46
http://www.cnblogs.com/wangaohui/archive/2012/12/15/2819419.html
今天写数据库的实验报告,对with check option不是很理解,按照书上的写代码就是不行,很是纠结,网上查了一下,发现一篇写的还是挺通俗简洁的,在这贴下来。
student表:
95001 李勇 男 20 CS
95002 刘晨 女 21 IS
95003 王敏 女 18 MA
95004 张力 男 19 IS
建立视图IS_STUDENT显示“IS”系所有学生的学号、姓名、性别。
create view IS_STUDENT
as
select Sno,Sname,Ssex from Student
where Sdept='IS'
with check option;
用insert语句向视图中插入元组('95009','王五','男'),查看基本表student表中插入的数据值。
问题:当没有加上with check option 的时候,可以成功插入,切插入到基本表的年龄和专业都是null。 当加上with check ooption 的时候,就插入失败了,这是怎么回事?麻烦详解一下
下面是失败的消息: 消息 550,级别 16,状态 1,第 1 行
试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了 WITH CHECK OPTION,而该操作的一个或多个结果行又不符合 CHECK OPTION 约束。 语句已终止
解答:
with check option可以这么解释:通过视图进行的修改,必须也能通过该视图看到修改后的结果。
比如你insert,那么加的这条记录在刷新视图后必须可以看到; 如果修改,修改完的结果也必须能通过该视图看到;如果删除,当然只能删除视图里有显示的记录。
小结:
首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过视图来操作。
1.对于update,有with check option,要保证update后,数据要被视图查询出来
2.对于delete,有无with check option都一样
3.对于insert,有with check option,要保证insert后,数据要被视图查询出来
4.对于没有where 子句的视图,使用with check option是多余的
- with check option的学习
- with check option的学习
- ORACLE 视图的 with check option
- 视图中with check option的作用
- ORACLE 视图的 with check option
- Oracle INSERT WITH CHECK OPTION的用法
- 创建视图的with check option选项。
- oracle 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
- ShowPopupMenu显示自己创建的右键菜单 不显示
- 学习java前一些概念的说明
- MBProgressHUD在多线程里面使用
- Solr配置停止词/排除词 stopwords(mmseg版)
- phpstorm常用快捷键
- with check option的学习
- HDU 2871 Memory Control 区间合并+区间更新
- iOS开发 iOS8 分割线右移15像素 将其归零
- HDU 2203 — 亲和串
- How to change the default stack size on different platforms
- O(1)时间复杂度实现入栈、出栈、获得栈中最小元素、获得栈中最大元素
- dgrid定制左下角描述信息
- ffmpeg安装
- Specialized Four-Digit Numbers