Oracle约束的关键字Enable/Disable/Validate/Novalidate
1 组合特性说明
Validate |
Novalidate |
|||
已有记录 |
新增/删除记录 |
已有记录 |
新增/删除记录 |
|
Enable |
Yes |
Yes |
No |
Yes |
Disable |
Yes |
No |
No |
No |
Validate确保已有数据符合约束;
Novalidate不必考虑已有数据是否符合约束。
除非Novalidate被指定,Enable默认Validate;
除非Validate被指定,Disable默认Novalidate。
Enable Validate与Enable相同,检查已有记录和新增记录,确保都符合约束;
Enable Novalidate 允许已有记录不必满足约束条件,但新增/修改的记录必须满足;
Disable Validate禁用约束,删除约束上的索引,不允许修改任何被约束的记录;
Disable Novalidate与Disable相同,禁用约束,删除约束上的索引,且允许修改被约束的记录。
2 建表
SQL> create table test(id int, name varchar2(10));
Table created
SQL> alter table test add constraint ck_id check(id > 10);
Table altered
3 测试1: Enable Validate
SQL> alter table test Enable validate constraint ck_id;
Table altered
SQL> insert into test values(5, 'Oracle');
insert into test values(5, 'Oracle')
ORA-02290: 违反检查约束条件 (MYHR.CK_ID)
SQL> insert into test values(17,'ERP');
1 row inserted
SQL> commit;
Commit complete
4 测试2: Enable Novalidate
SQL> alter table test disable constraint ck_id;
Table altered
SQL> insert into test values(5, 'Oracle');
1 row inserted
SQL> commit;
Commit complete
SQL> select * from test;
ID NAME
----------- ----------
17 ERP
5 Oracle
SQL> alter table test enable novalidate constraint ck_id;
Table altered
SQL> insert into test values(32, 'SAP');
1 row inserted
SQL> insert into test values(3, 'Linux');
insert into test values(3, 'Linux')
ORA-02290: 违反检查约束条件 (MYHR.CK_ID)
SQL> commit;
Commit complete
5 测试3: Disable Validate
SQL> delete from test where id < 10;
1 row deleted
SQL> commit;
Commit complete
SQL> alter table test disable validate constraint ck_id;
Table altered
SQL> select * from test;
ID NAME
------------- ----------
17 ERP
32 SAP
SQL> update test set name = 'Change' where id = 17;
update test set name = 'Change' where id = 17
ORA-25128: 不能对带有禁用和验证约束条件 (MYHR.CK_ID) 的表进行插入/更新/删除
6 测试4: Disable Novalidate
SQL> alter table test disable novalidate constraint ck_id;
Table altered
SQL> insert into test values(2, 'Linux');
1 row inserted
SQL> insert into test values(13, 'Windows');
1 row inserted
SQL> update test set name = 'Change' where id = 17;
1 row updated
SQL> commit;
Commit complete
SQL> select * from test;
ID NAME
---------- ----------
17 Change
13 Windows
32 SAP
2 Linux
Oracle约束的关键字Enable/Disable/Validate/Novalidate相关推荐
- oracle 关键字 enable,Oracle之表示约束状态的关键字Enable/Disable/Validate/Novalidate
Oracle约束的关键字Enable/Disable/Validate/Novalidate 分类: [oracle]--[PL/SQL] 小结: enable/disable对未来的数据有约束/无约 ...
- Oracle之表示约束状态的关键字Enable/Disable/Validate/Novalidate
转自:https://blog.csdn.net/haiross/article/details/41977717 分类: [oracle]--[PL/SQL] 小结: enable/disable对 ...
- 默认约束 oracle,ORACLE约束(constraint):对象的强制规定
ORACLE约束(constraint):对象的强制规定 5种约束: NOT NULL 非空 NN UNIQUE 唯一 UK PRIMARY KEY 主键 PK FOREIGN ...
- oracle约束什么意思,Oracle约束的属性
今天处理了一个由于约束插入数据失败的问题,处理时感到有些吃力,三天不练手生 今天处理了一个由于约束插入数据失败的问题,,处理时感到有些吃力,三天不练手生啊.在这里回忆一下. Oracle数据库Cons ...
- 10.1 、Oracle 约束的DEFERRABLE, NOT DEFERRABLE, INITIALLY IMMEDIATE 和 INITIALLY DEFERRED
约束的 DEFERRABLE, NOT DEFERRABLE, INITIALLY IMMEDIATE 和 INITIALLY DEFERRED [ CONSTRAINT constraint_nam ...
- oracle怎么关闭约束,Oracle约束enable/disablenovalidate
oracle 对constraint的开启和关闭共有四种:enable validate;enable novalidate;disable validate;disable novalidate.启 ...
- oracle 查看表结构约束,oracle 约束
约束是表中列的属性,用来维护数据结构完整性的一种手段 约束的种类: NOT NULL UNIQUE PARIAMRY KEY FOREIGN KEY CHECK enble validate 检查现有 ...
- oracle约束 关闭,Oracle约束管理脚本
正在看的ORACLE教程是:Oracle约束管理脚本. 作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器.这在数据库的合并以及对数据 ...
- 【DB笔试面试594】在Oracle中,关键字NOLOGGING、APPEND和PARALLEL提高DML性能方面有什么差别?...
♣题目部分 在Oracle中,关键字NOLOGGING.APPEND和PARALLEL提高DML性能方面有什么差别? ♣答案部分 众所周知,表模式(LOGGING/NOLOGGING).插入模式(AP ...
最新文章
- 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 二 )
- JVM 内存区域大小参数设置
- 世界上最诡异的画,到底为何让无数人闻风丧胆?
- 用GDAL/OGR去读shapefile
- hadoop 传感器数据_读取模式错误,计算引擎操作复杂……面对Hadoop这些问题该如何应对?...
- 模拟登录新浪微博(Python)
- Atitit 接口文档法 swaagger法 目录 1. Javadoc法	1 2. (9+条消息)swagger2常用注解说明 - 兴国-为梦想而战 - CSDN博客.html	1 2.1. 首
- 阿里云CentOS服务器搭建静态网站(零基础)
- html+css+js:文案馆网页设计
- ear的英语怎么念_适合三年级英语课堂的小游戏
- Mysql高阶sql语句
- fmask云检测 matlab_高分四号卫星数据云和云阴影检测算法
- 如何用python批量处理图片大小_Python批量修改图片大小
- ValueError: bad transparency mask
- mockplus模板_UI设计工具比较:Sketch、Adobe XD、墨刀、Mockplus、Axure RP
- 如何从初级程序员顺利晋升到高级程序员?
- Win11服务Windows Update禁用后自动开启怎么办
- ArcGIS栅格重采样方法介绍
- Trustie网站代码托管使用指南
- springboot视图解析器配置