创建视图的语句是设置了 WITH CHECK OPTION 这个条件;

创建视图时,sql语句是这样写的:

CREATE  OR  REPLACE  VIEW  RZ_TST_VIEW AS WHERE SELECT * FROM RZ_TST   WHERE CARDID=12345 OR CARDID=12347    WITH CHECK OPTION;

创建成功之后如图所示:

这个时候再进行插入操作的时候,报了如上图的错误,SQL语句如下:

INSERT INTO RZ_TST_VIEW (CARDID,NAME,ADDRESS,WDATE,SALARY,TXT)VALUES(1234578,'王麻子','幸福大街欸王五三号',to_date(sysdate),20084,'试图约束测试');

分析如下:创建试图的时候,由于自己加了限制条件CARDID=12345 OR CARDID=12347,所以,在进行新增的时候,发现新增不进去,由于新增的条件CARDID=1234578

导致发现假如新增成功以后,视图是没有办法根据现有的查询条件CARDID=12345 OR CARDID=12347查询出来咱们新增加的这一条数据,所以是错误的,所以在加了这个条件之后,如果添加的数据不符合之前在创建视图的时候所查询的条件,是不允许被插进去的!

解决办法:如果非要插入进去,可以先删除原有的数据,SQL如下:

DELETE FROM RZ_TST_VIEW WHERE CARDID=12345;

再进行重新插入:INSERT INTO RZ_TST_VIEW (CARDID,NAME,ADDRESS,WDATE,SALARY,TXT)VALUES(12345,'王麻子','幸福大街欸王五三号',null,20084,'试图约束测试');

插入成功;

在更新操作的时候,是不允许更新成查询不出来的数据的,比如将CARDID=12233,更新是不被允许的;

总结:任何操作在完成后,都应该符合创建视图所规定的,即应该是可见的,可以根据创建的条件被查询出来的,否则将是不被允许的;

view WITH CHECK OPTION where-clause violation(查看与检查选项where-子句违反)的更多相关文章

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

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

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

    2014-12-09 Created By BaoXinjian

  3. with check option

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

  4. SQL中的with check option(转)

    student表: 95001 李勇 男 20 CS 95002 刘晨 女 21 IS 95003 王敏 女 18 MA 95004 张力 男 19 IS 建立视图IS_STUDENT显示“IS”系所 ...

  5. with check option(视图 )

    建立视图的时候使用WITH CHECK OPTION 与不使用的区别 WITH CHECK OPTION insert update  delete 使用with check option 保证ins ...

  6. ORACLE 视图的 with check option

    ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...

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

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

  8. sqlserver-一次updlock和withnolock和with check option 的报错原因分析

    接口程序一直运行的很稳定,其中有一天进行了数据库的整改,导致程序不断报错, 报错信息如下 原因: 程序代码写入以下代码 select * from ViewName with(updlock) whe ...

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

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

随机推荐

  1. Django之models模块

    一.字段 1. AutoField(Field) int自增列,必须填入参数 primary_key=True 2.BigAutoField(AutoField) bigint自增列,必须填入参数 p ...

  2. 牛客国庆集训派对Day1 L New Game!(堆优化dijkstra+建图)

    链接:https://ac.nowcoder.com/acm/contest/201/L来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 1048576K,其他语言2097 ...

  3. Common Lisp学习资源整理

    Lisp Hackers: Interviews with 100x More Productive Programmers Posted on June 26th, 2013 Lisp Hacker ...

  4. ajax结合sweetalert实现删除按钮动态效果

    目录 一.ajax结合sweetalert实现删除按钮动态效果 二.bulk_create批量插入数据 1. 一条一条插入 2. 批量插入 三.自定义分页器 一.ajax结合sweetalert实现删 ...

  5. 《Java基础知识》Java成员变量,成员方法,构造方法和析构方法

    一 成员变量 成员变量是指类的一些属性定义,标志类的静态特征,它的基本格式如下: [访问修饰符][修饰符][类型][属性名称]= [初始值] 访问修饰符:public(公共的):protected(受 ...

  6. 《Java基础知识》Java多态对象的类型转换

    这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常. ...

  7. vue项目的开发

    vue项目的开发 我们已经通过命令行创建了一个vue项目,并且打开了这个项目.下面是这个文件的src文件夹,这个文件夹放了整个项目的核心代码. 一.vue文件的用处简介. 1.assets文件夹,用来 ...

  8. docker alphine 安装vim 等软件

    alphine 不带 yum,所以只能用apt-get 安装 apt-get update apt-get install vim apt-get install net-tools

  9. Django的Form验证(2)

    Django的Form验证(2) Form的含义及作用: 用于验证用户请求数据合法性的一个组件(校验数据的合法性) Django的Form实现步骤: 创建一个验证用户请求的模板 from django ...

  10. Appium(九):Appium API(三) 滑动和拖拽、高级手势、手机操作

    1. 滑动和拖拽 我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指的滑动,也就是接下来要学的滑动和拖拽了. 1.1 swipe滑动事件 从一个坐标位置滑 ...