创建视图的语句是设置了 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. 3年Java开发6个点搞定高并发系统面试疑惑

    前言 其实所谓的高并发,如果你要理解这个问题呢,其实就得从高并发的根源出发,为啥会有高并发?为啥高并发就很牛逼? 说的浅显一点,很简单,就是因为刚开始系统都是连接数据库的,但是要知道数据库支撑到每秒并 ...

  2. 还不懂MySQL索引?这1次彻底搞懂B+树和B-树

    前言 看了很多关于索引的博客,讲的大同小异.但是始终没有让我明白关于索引的一些概念,如B-Tree索引,Hash索引,唯一索引….或许有很多人和我一样,没搞清楚概念就开始研究B-Tree,B+Tree ...

  3. python学习-继承

    # 继承# 你的是我的,我的还是我的 class Animal: def __init__(self,name,private_v1): self.name = name self._private_ ...

  4. 常见面试题之*args 和 **kwargs 的使用

    def self_max(*args,**kwargs): print(args) print(kwargs) self_max(1,2,3,4,5,6,7,x=6,y=8,z=80,e=50) 输出 ...

  5. 《Java基础知识》Java类的基本运行顺序

    我们以下面的类来说明一个基本的 Java 类的运行顺序: public class Demo { private String name; private int age; public Demo() ...

  6. css设置使文字显示2行多余的为省略号。。。

    .title{ font-size: .7rem; line-height: 1.5rem; overflow: hidden; /** 隐藏超出的内容 **/ word-break: break-a ...

  7. 《大话设计模式》——简单工厂模式(Python版)

    简单工厂模式(Simple Factory Pattern):是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 例: 使用Python设计一个控制台计算器,要求输入两个数 ...

  8. 关于爬取babycenter.com A-Z为顺序的所有英文名及其详细属性

     这一次爬取的内容已经在标题里提到了,下面是详细要求及其图示: 1.首先以A-Z的顺序获取所有英文名,最后爬取该英文名的详细信息. 2.CSV的header以3中的单词为准,请别拼错.如果没有对应的数 ...

  9. tyvj 1387 迷你火车头

    dp百题进度条[1/100] 一列火车有一个火车头拖着一长串的车厢,每个车厢有若干个乘客. 一旦火车头出了故障,所有的车厢就只能停在铁轨上了,因此铁路局给每列火车配备了三个迷你火车头,每个迷你火车头可 ...

  10. Dubbo简介与基本概念

    场景 分布式系统的发展演变以及RPC简介: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103555049 Dubbo简介 Ap ...