insert into (select...WITH CHECK OPTION) values(...)
insert into (<subquery> WITH CHECK OPTION) values (...)
语法看起来很特殊,其实是insert进subquery的这张表里:
1. 只有插入的值在subquery列表中,且满足where条件时才能插入成功。
2. 如果不满足subquery里的where条件的话,就不允许插入。
3. 如果插入的列不在subquery里,那么也会不允许插入。
4. 如果不加WITH CHECK OPTION则在插入时不会检查。
5. subquery其实是不会实际执行的。
//满足条件,成功插入
SQL> insert into (select deptno,dname from dept where deptno>50 with check option) values (90,'Tough');
已创建 1 行。
//deptno=45不满足where子句条件
SQL> insert into (select deptno,dname from dept where deptno>50 with check option) values (45,'Tough');
insert into (select deptno,dname from dept where deptno>50 with check option) values (45,'Tough')
*
第 1 行出现错误:
ORA-01402: 视图 WITH CHECK OPTIDN where 子句违规
//插入的值不在subquery列表中,多值或少值都不行
SQL> insert into (select deptno,dname from dept where deptno>50 with check option) values (90,'Tough','TH');
insert into (select deptno,dname from dept where deptno>50 with check option) values (90,'Tough','TH')
*
第 1 行出现错误:
ORA-00913: 值过多SQL> insert into (select deptno,dname from dept where deptno>50 with check option) values (90);
insert into (select deptno,dname from dept where deptno>50 with check option) values (90)
*
第 1 行出现错误:
ORA-00947: 没有足够的值
//不加WITH CHECK OPTION则在插入时不会检查
SQL> insert into (select deptno,dname from dept where deptno>50) values (45,'Tough');
已创建 1 行。
//subquery其实是不会实际执行的。从执行计划可以看出来
SQL> insert into (select deptno,dname from dept where deptno>50 with check option) values (91,'Tough');
已创建 1 行。执行计划
-----------------------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------
| 0 | INSERT STATEMENT | | 1 | 20 | 1 (0)| 00:00:01 |
-------------------------------------------------------------------------
insert into (select...WITH CHECK OPTION) values(...)的更多相关文章
- [每日一题] 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选项的视图操作基表(只是面对单表,对连接多表的视图正在寻找答案),有以下结论:首先视图只操作它可以查询出来的数据,对于它查询不出的数据,即使基表有,也不可以通过 ...
- ORACLE 视图的 with check option
ORACLE 视图的 with check option 我们来看下面的例子: create or replace view testview as select empno,ename from e ...
- view WITH CHECK OPTION where-clause violation(查看与检查选项where-子句违反)
创建视图的语句是设置了 WITH CHECK OPTION 这个条件; 创建视图时,sql语句是这样写的: CREATE OR REPLACE VIEW RZ_TST_VIEW AS WHER ...
- with check option(视图 )
建立视图的时候使用WITH CHECK OPTION 与不使用的区别 WITH CHECK OPTION insert update delete 使用with check option 保证ins ...
- SQL中的with check option(转)
student表: 95001 李勇 男 20 CS 95002 刘晨 女 21 IS 95003 王敏 女 18 MA 95004 张力 男 19 IS 建立视图IS_STUDENT显示“IS”系所 ...
- 批量 1 insert into select 2 sqldataadapter.update 3 SELECT INTO FROM (要求目标表不存在) 4 AddRange(ef) 5 MySqlBulkLoader.Load() 6 BatchInsert 7 insert bulk
insert into a(col1,col2) select top 1 '1','2' from a union select top 1 '3','4' from a SELECT IN ...
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少.但我 ...
随机推荐
- 用RSA实现Web单点登录密码的加密传输
在使用通用权限管理系统(吉日嘎拉)的单点登录功能时,对登录密码使用了RSA加密(非对称加密),有使用这个权限管理系统的可参考下. 前端部分,请引用以下几个js文件: <script type=& ...
- 使用 MJ 自定义下拉刷新
// // ViewController.m // Refresh // // Created by Apple on 16/7/19. // Copyright © 2016年 mac. All r ...
- iOS-实现验证码倒计时功能(1)
验证码倒计时按钮的应用是非常普遍的,该Blog就和你一起来写一个IDCountDownButton来实现验证码倒计时的效果.你可以想使用普通的UIButton类型按钮一样,只需要设置其倒计时时长(若未 ...
- SQL Server 在线进程分析处理
SQL Server 在线进程分析处理 前言 数据库在线进程处理在很多时候需要人为干预已达到预期管理目标,下面整理一下常用的在线进程管理方法,便于后续工作使用. 一.查看目标数据库在线进程,并杀死指定 ...
- C# 委托的几种写法
class Program { delegate string Get(string ss); delegate string Get2(int i); ...
- Servlet & JSP - Java Web 访问资源的路径问题
假设 Web 工程的目录结构如下图所示,并且 HelloServlet 配置为 @WebServlet(name = "helloServlet", urlPatterns = { ...
- EF4.1之Code first 的几种连接数据库的方式
通过代码 进行连接和创建数据库的方法主要分为两种: 1.使用用连接字符串(在配置文件里面): 连接字符串: <add name="DbEntities" connection ...
- error LNK2005: DDX_Control 已经在 uafxcwd.lib(wincore2.obj) 中定义
编译错误提示: 1>afxnmcdd.lib(wincore2.obj) : error LNK2005: "void __stdcall DDX_Control(classCData ...
- js画了一个椭圆
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- linux ubuntu vsftp 默认主目录
vi /etc/passwd 查看/ftp: 后面的目录就是默认目录 这是匿名用户的目录 --------------------------- 使用linux 别的用户,默认在/home/用户名 ...