创建视图的语句是设置了 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. Weed3 for java 新的微型ORM框架

    Weed3,微型ORM框架(支持:java sql,xml sql,annotation sql:存储过程:事务:缓存:监听:等...) 05年时开发了第一代: 08年时开发了第二代,那时候进入互联网 ...

  2. python学习-while

    """while 条件: 条件满足时,干的事情.如果条件一直满足,一直去重复的执行代码.直接条件不满足为止,停止循环."""# salary ...

  3. Python3之Django的Cookie与Session的使用

    一.Cookie的使用 1.设置Cookie url.set_cookie("tile","zhanggen",expires=value,path='/' ) ...

  4. Linux常见指令大全

    转载自https://www.cnblogs.com/caozy/p/9261224.html 前言 本文特点 授之以渔:了解命令学习方法.用途:不再死记硬背,拒绝漫无目的: 准确无误:所有命令执行通 ...

  5. Python基础知识第八篇(集合)

    #集合是无序的#集合是不同元素组成的#集合是不可变的,列如:列表,字典,元组#创建空集合 s=set() # s={1,2,3,4,2} # print(s) #集合添加>>>> ...

  6. MySql数据库之常用数据类型及常用约束简述

    本文呢,主要给大家简述一下数据库中常用的几种数据类型以及约束. 1.数据类型 数据类型,是指数据表中可以存储的数据的种类. 数据库中常用的数据类型有: 1.整型:int.bit 2.小数:decima ...

  7. Winform中实现拖拽文件到ListView获取文件类型(附代码下载)

    场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个for ...

  8. TP框架对数据库的操作

    1.添加数据       1.1添加一条数据 $user = new User; $user->name = 'thinkphp'; $user->email = 'thinkphp@qq ...

  9. github克隆项目缓慢

    github浏览或者克隆项目的时候,总是十分缓慢,下面是亲自自测的一种方式,克隆速度可以稍快一些 第一步 访问域名解析网站:https://www.ipaddress.com/ 在网页下方可以看见一个 ...

  10. 自定义Metadata验证属性

    一.定义 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...