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相关推荐

  1. oracle 关键字 enable,Oracle之表示约束状态的关键字Enable/Disable/Validate/Novalidate

    Oracle约束的关键字Enable/Disable/Validate/Novalidate 分类: [oracle]--[PL/SQL] 小结: enable/disable对未来的数据有约束/无约 ...

  2. Oracle之表示约束状态的关键字Enable/Disable/Validate/Novalidate

    转自:https://blog.csdn.net/haiross/article/details/41977717 分类: [oracle]--[PL/SQL] 小结: enable/disable对 ...

  3. 默认约束 oracle,ORACLE约束(constraint):对象的强制规定

    ORACLE约束(constraint):对象的强制规定 5种约束: NOT NULL     非空 NN UNIQUE       唯一 UK PRIMARY KEY  主键 PK FOREIGN ...

  4. oracle约束什么意思,Oracle约束的属性

    今天处理了一个由于约束插入数据失败的问题,处理时感到有些吃力,三天不练手生 今天处理了一个由于约束插入数据失败的问题,,处理时感到有些吃力,三天不练手生啊.在这里回忆一下. Oracle数据库Cons ...

  5. 10.1 、Oracle 约束的DEFERRABLE, NOT DEFERRABLE, INITIALLY IMMEDIATE 和 INITIALLY DEFERRED

    约束的 DEFERRABLE, NOT DEFERRABLE, INITIALLY IMMEDIATE 和 INITIALLY DEFERRED [ CONSTRAINT constraint_nam ...

  6. oracle怎么关闭约束,Oracle约束enable/disablenovalidate

    oracle 对constraint的开启和关闭共有四种:enable validate;enable novalidate;disable validate;disable novalidate.启 ...

  7. oracle 查看表结构约束,oracle 约束

    约束是表中列的属性,用来维护数据结构完整性的一种手段 约束的种类: NOT NULL UNIQUE PARIAMRY KEY FOREIGN KEY CHECK enble validate 检查现有 ...

  8. oracle约束 关闭,Oracle约束管理脚本

    正在看的ORACLE教程是:Oracle约束管理脚本. 作为一个Oracle数据库管理员,会碰到这样的数据库管理需求,停止或者打开当前用户(模式)下所有表的约束条件和触发器.这在数据库的合并以及对数据 ...

  9. 【DB笔试面试594】在Oracle中,关键字NOLOGGING、APPEND和PARALLEL提高DML性能方面有什么差别?...

    ♣题目部分 在Oracle中,关键字NOLOGGING.APPEND和PARALLEL提高DML性能方面有什么差别? ♣答案部分 众所周知,表模式(LOGGING/NOLOGGING).插入模式(AP ...

最新文章

  1. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 二 )
  2. JVM 内存区域大小参数设置
  3. 世界上最诡异的画,到底为何让无数人闻风丧胆?
  4. 用GDAL/OGR去读shapefile
  5. hadoop 传感器数据_读取模式错误,计算引擎操作复杂……面对Hadoop这些问题该如何应对?...
  6. 模拟登录新浪微博(Python)
  7. Atitit 接口文档法 swaagger法 目录 1. Javadoc法 1 2. (9+条消息)swagger2常用注解说明 - 兴国-为梦想而战 - CSDN博客.html 1 2.1. 首
  8. 阿里云CentOS服务器搭建静态网站(零基础)
  9. html+css+js:文案馆网页设计
  10. ear的英语怎么念_适合三年级英语课堂的小游戏
  11. Mysql高阶sql语句
  12. fmask云检测 matlab_高分四号卫星数据云和云阴影检测算法
  13. 如何用python批量处理图片大小_Python批量修改图片大小
  14. ValueError: bad transparency mask
  15. mockplus模板_UI设计工具比较:Sketch、Adobe XD、墨刀、Mockplus、Axure RP
  16. 如何从初级程序员顺利晋升到高级程序员?
  17. Win11服务Windows Update禁用后自动开启怎么办
  18. ArcGIS栅格重采样方法介绍
  19. Trustie网站代码托管使用指南
  20. springboot视图解析器配置

热门文章

  1. wtl单文档选项_Vite 中文文档翻译
  2. beego 快速入门
  3. linux 网络的一些书籍
  4. php常见的验证方法
  5. [bootStrap]代码块出现横线滚动条
  6. 自学linux指令分析-find
  7. [LeetCode] Single Number
  8. Eclipse 自动注释的设置
  9. ubuntu不启动图形界面
  10. k8s的list-watch机制和 pod调度约束