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表中插入的数据值。

下面是失败的消息: 消息 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是多余的

原地址:http://www.cnblogs.com/wangaohui/archive/2012/12/15/2819419.html

SQL中的with check option(转)的更多相关文章

  1. 数据库中WITH CHECK OPTION的用法

      WITH CHECK OPTION:透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式)   例如:   create view TestView   as selec ...

  2. insert into (select...WITH CHECK OPTION) values(...)

    insert into (<subquery> WITH CHECK OPTION) values (...) 语法看起来很特殊,其实是insert进subquery的这张表里: 1. 只 ...

  3. 使用集成SOA网关的PL / SQL中的REST

    使用集成SOA网关的PL / SQL中的REST Oracle电子商务套件集成SOA网关(ISG)是一款开箱即用的模块,支持在Oracle Integration Repository中发布支持的接口 ...

  4. [每日一题] OCP1z0-047 :2013-08-04 INSERT --- WITH CHECK OPTION

    这题是考:insertWITH CHECK OPTION的用法 insert into (<select clause> WITH CHECKOPTION) values (...) 这样 ...

  5. sql中case when语句的使用-来自网摘文章

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  6. 转-sql中的case when的用法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  7. PLSQL_基础系列05_视图控制WITH CHECK OPTION(案例)

    2014-12-09 Created By BaoXinjian

  8. with check option

    通过有with check option选项的视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论:首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过 ...

  9. SQL中CONVERT()函数用法详解

    SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...

随机推荐

  1. WebPack命令执行的时候,其内部处理逻辑是什么

    1.首先webpack发现并没有通过命令的形式,给它指定入口和出口 2.向根目录查找“webpack.config.js”配置文件 3.解析这个配置文件,并得到配置文件中导出的配置对象 4.当拿到配置 ...

  2. 使用Keepalived配置主从热备实现Nginx高可用(HA)

    Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案,Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前端服务 ...

  3. HTML5外包注意事项-开发HTML5游戏的九大坑与解决方法剖析

    随着移动社区兴起,势必带动HTML5的革命.未来一两年内,HTML5移动游戏必将呈现大爆发趋势. 以下是整理的HTML5游戏研发.市场趋势以及渠道布局和技术解决方案的内容.希望大家能从本文中找到对HT ...

  4. HTML标记

    html:超文本标记语言 标记,标签,元素 单标签:<标签名  属性名="属性值" 属性名=“属性值” /> 双标签:<标签名  属性名="属性值” 属 ...

  5. springboot缓存注解——@CachePut

    @CachePut:既调用方法,又更新缓存数据:修改了数据库的某个数据,同时又更新缓存 运行时机: 先调用目标方法 将目标方法的结果缓存起来 注意: @Cacheable的key不能用#result来 ...

  6. [数据结构] 2.7 Heap 堆

    * 注: 本文/本系列谢绝转载,如有转载,本人有权利追究相应责任. 1.堆是什么? (如图所示是一个小堆) 1)堆是一颗完全二叉树,它的最后一层不是满的,其他每一层都是满的,最后一层从左到右也没有空隙 ...

  7. RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser

    Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用.Selenium发展的过程中,分了很多模块,这里我们主要介绍W ...

  8. 20190320_head first pyhton学习笔记之构建发布

    1.把代码nester.py放入文件夹nester中,在文件夹中再新建一个setup.py文件,文件内容如下: from distutils.core import setup setup( name ...

  9. SpringBoot之profile详解

    SpringBoot中使用配置文件application.properties&application.yml两种方式,在这两种方式下分别对应各自的profile配置方式,同时还存在命令行.虚 ...

  10. PAT 1144 The Missing Number

    1144 The Missing Number (20 分)   Given N integers, you are supposed to find the smallest positive in ...