view WITH CHECK OPTION where-clause violation(查看与检查选项where-子句违反)
创建视图的语句是设置了 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-子句违反)的更多相关文章
- [每日一题] OCP1z0-047 :2013-08-04 INSERT --- WITH CHECK OPTION
这题是考:insertWITH CHECK OPTION的用法 insert into (<select clause> WITH CHECKOPTION) values (...) 这样 ...
- PLSQL_基础系列05_视图控制WITH CHECK OPTION(案例)
2014-12-09 Created By BaoXinjian
- with check option
通过有with check option选项的视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论:首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过 ...
- SQL中的with check option(转)
student表: 95001 李勇 男 20 CS 95002 刘晨 女 21 IS 95003 王敏 女 18 MA 95004 张力 男 19 IS 建立视图IS_STUDENT显示“IS”系所 ...
- with check option(视图 )
建立视图的时候使用WITH CHECK OPTION 与不使用的区别 WITH CHECK OPTION insert update delete 使用with check option 保证ins ...
- ORACLE 视图的 with check option
ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...
- 数据库中WITH CHECK OPTION的用法
WITH CHECK OPTION:透过视图进行增删改操作时,不得破坏视图定义中的谓词条件(即子查询中的条件表达式) 例如: create view TestView as selec ...
- sqlserver-一次updlock和withnolock和with check option 的报错原因分析
接口程序一直运行的很稳定,其中有一天进行了数据库的整改,导致程序不断报错, 报错信息如下 原因: 程序代码写入以下代码 select * from ViewName with(updlock) whe ...
- insert into (select...WITH CHECK OPTION) values(...)
insert into (<subquery> WITH CHECK OPTION) values (...) 语法看起来很特殊,其实是insert进subquery的这张表里: 1. 只 ...
随机推荐
- Centos7使用离线安装包rpm安装MySQL5.6
参考地址: https://blog.csdn.net/ai_64/article/details/100557530 https://dev.mysql.com/doc/refman/5.6/en/ ...
- JS基础知识——原型与原型链
1.如何准确判断一个变量的数组类型 2.写一个原型链继承的例子 3.描述new一个对象的过程 4.zepto(或其他框架中如何使用原型链) 知识点: (1)构造函数 function Foo(name ...
- 《Java基础知识》流程控制
流程控制分类: 一.顺序结构如果没有流程控制(即没有分支结构和循环结构),Java方法里面的语句是一个顺序执行流,从上到下依次执行每条语句. 二.分支结构1.if语句if语句使用布尔表达式或者布尔值作 ...
- python获取淘宝登入cookies
重点:去新浪微博登入接口登入 一.代码 # coding=utf-8 import requests from selenium.webdriver.common.by import By from ...
- 2019年Java面试题基础系列228道(2)
21.描述一下 JVM 加载 class 文件的原理机制? JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的类加载器是一个重要的 Java 运行时系统组件,它 ...
- 15. Go 语言“避坑”与技巧
Go 语言"避坑"与技巧 任何编程语言都不是完美的,Go 语言也是如此.Go 语言的某些特性在使用时如果不注意,也会造成一些错误,我们习惯上将这些造成错误的设计称为"坑& ...
- 求连通块的面积 - BFS、DFS实现
本文以Leetcode中695.岛屿的最大面积题目为基础进行展开(题目
- YII2数据库操作出现类似Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or director
参考文章:https://blog.csdn.net/zqtsx/article/details/41845511 我的系统时Ubuntu18使用上面的方法时发现,没有MySQL.socket,然后谷 ...
- 如何用python查看自己的电脑有几个核
今天在研究多进程的时候,如果想要充分利用多核CPU资源,最起码的一点你应该知道自己的电脑有几个核. 下面是用python3 的 os 模块来查看自己的电脑是几个核的方法. import os prin ...
- feign响应Image流对象
feign面向方法签名的http调用,越来越受欢迎,类型于rpc的thrift,只需要关注方法签名和返回值即可,当然feign响应流对象时,需要我们做一下特殊处理,否则会出现异常.也有一些文章通过重写 ...