这里找到一篇博文对这两个用法的解释:http://www.cnblogs.com/rootq/archive/2008/09/23/1297400.html

启用约束:

enable( validate) :启用约束,创建索引,对已有及新加入的数据执行约束. e

enable novalidate :启用约束,创建索引,仅对新加入的数据强制执行约束,而不管表中的现有数据.

禁用约束:

disable( novalidate):关闭约束,删除索引,可以对约束列的数据进行修改等操作.

disable validate :关闭约束,删除索引,不能对表进行 插入/更新/删除等操作.

这里自己做了下实验,也确实验证上面的说法。

下面是DISABLE VALIDATE的实验结果

declare
num number;
begin
select count(1) into num from all_tables where TABLE_NAME = 'TEST2';
if num=1 then
execute immediate 'drop table TEST2';
end if;
end;
/ create table Test2(
col1 int CONSTRAINT cons_test2_1 NOT NULL CHECK(col1>10) DISABLE VALIDATE,
col2 varchar(100) null
);
/ insert into Test2(col1,col2) values(1,'a'); 在行 32 上开始执行命令时出错:
insert into Test2(col1,col2) values(1,'a')
命令出错, 行: 32 列: 1
错误报告:
SQL 错误: ORA-25128: 不能对带有禁用和验证约束条件 (SYSTEM.SYS_C009875) 的表进行插入/更新/删除
25128. 00000 -  "No insert/update/delete on table with constraint (%s.%s) disabled and validated"
*Cause:    Try to insert/update/delete on table with DISABLE VALIDATE constraint.
*Action:   Change the constraint's states.

下面是ENANLE VALIDATE的实验结果

declare
num number;
begin
select count(1) into num from all_tables where TABLE_NAME = 'TEST2';
if num=1 then
execute immediate 'drop table TEST2';
end if;
end;
/ create table Test2(
col1 int CONSTRAINT cons_test2_1 NOT NULL CHECK(col1>10) ENABLE VALIDATE,
col2 varchar(100) null
);
/ insert into Test2(col1,col2) values(1,'a'); 在行 32 上开始执行命令时出错:
insert into Test2(col1,col2) values(1,'a')
错误报告:
SQL 错误: ORA-02290: 违反检查约束条件 (SYSTEM.SYS_C009877)
02290. 00000 -  "check constraint (%s.%s) violated"
*Cause:    The values being inserted do not satisfy the named check
          
*Action:   do not insert values that violate the constraint.

下面是ENABLE NOVALIDATE的实验结果。

declare
num number;
begin
select count(1) into num from all_tables where TABLE_NAME = 'TEST2';
if num=1 then
execute immediate 'drop table TEST2';
end if;
end;
/ create table Test2(
col1 int,
col2 varchar(100) null
);
/ insert into Test2(col1,col2) values(1,'a');
/ alter table Test2 add CONSTRAINT cons_test2_1 CHECK(col1>10) ENABLE NOVALIDATE;
/ select * from Test2;
/ insert into Test2(col1,col2) values(2,'b');

table TEST2 已创建。 1 行已插入。 table TEST2已变更。 >>Query Run In:查询结果 1

在行 41 上开始执行命令时出错: insert into Test2(col1,col2) values(2,'b') 错误报告: SQL 错误: ORA-02290: 违反检查约束条件 (SYSTEM.CONS_TEST2_1) 02290. 00000 -  "check constraint (%s.%s) violated" *Cause:    The values being inserted do not satisfy the named check            *Action:   do not insert values that violate the constraint.

Oracle ->> ENABLE VALIDATE & DISABLE VALIDATE的更多相关文章

  1. How to: Enable and Disable an Action Pane Button on a List Page [AX 2012]

    Applies To: Microsoft Dynamics AX 2012 R2, Microsoft Dynamics AX 2012 Feature Pack, Microsoft Dynami ...

  2. How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows and Windows Server

    转自:https://support.microsoft.com/en-us/help/2696547/detect-enable-disable-smbv1-smbv2-smbv3-in-windo ...

  3. enable or disable Oracle block change tracking

    Oracle的block change tracking用于记录上次备份以来改变过的block信息,因此打开block change tracking可以大大加快增量备份的速度. 1. Enable ...

  4. oracle enable / disable all constraint

    beginfor i in (select constraint_name, table_name from user_constraints where table_name='') LOOPexe ...

  5. KnockoutJS 3.X API 第四章 表单绑定(8) submit、enable、disable绑定

    submit绑定目的 submit绑定即为提交绑定,通常用于form元素.这种绑定方式会打断默认的提交至服务器的操作.转而提交到你设定好的提交绑定回调函数中.如果要打破这个默认规则,只需要在回调函数中 ...

  6. jqery validate、validate自定义验证方法 + jaery form Demo

    校验规则 required:true  必输字段 remote:"check.php"  使用ajax方法调用check.php验证输入值 email:true  必须输入正确格式 ...

  7. [Windows Hyper-V-Server]Enable or disable firewall rules under powershell / powershell下启用禁用防火墙规则

    http://www.cryer.co.uk/brian/windows/hyper-v-server/help_computer_cannot_be_managed.htm Enable COM+ ...

  8. How to Enable or Disable a cell in DataGridview Row ?

    Following link http://msdn.microsoft.com/en-us/library/ms171619.aspxhttp://windowsclient.net/blogs/f ...

  9. oracle约束条件状态

    Oracle完整性约束有一下4种: • DISABLE NOVALIDATE • ENABLE NOVALIDATE • DISABLE VALIDATE • ENABLE VALIDATE   •  ...

随机推荐

  1. 丢掉 WinPE,使用 DISKPART 来分区吧

    自 Windows Vista 之后的操作系统,如果在安装系统的时候使用 Windows 自带的分区功能,则会多出一个 100M 的系统保留分区.这会让一个物理硬盘,原先最多可以分 4 个主分区的,现 ...

  2. CS小分队第一阶段冲刺站立会议(5月7日)

    昨日完成任务:1.完成了游戏2048退出自动保存功能,进入自动读取存档功能, 2.完成游戏失败判断函数, 3.为游戏添加了背景音乐并且可以手动开关 遇到的困难:使用数据库时由于使用的ACCESS版本比 ...

  3. TF/IDF(term frequency/inverse document frequency)

    TF/IDF(term frequency/inverse document frequency) 的概念被公认为信息检索中最重要的发明. 一. TF/IDF描述单个term与特定document的相 ...

  4. OpenCms 集成外部Solr Server

    OpenCms默认是以内嵌的Solr作为全文搜索服务的,不过我们也可以配置一个独立的Solr搜索服务器 设置外部Solr Server 1. 从Solr 官方站点http://lucene.apach ...

  5. IE6中布局常见问题

    1.众所周知,每个IE的版本都有两种模式,怪异模式(混杂模式)和标准模式.下图附上针对IE的hack. 2.另外有一种引进css的方法,也可以作为调整网站hack的方法:<!—[if IE 6] ...

  6. Noip2015总结

    Noip2015战役总结 [游记部分] Day0 考前说是可以放松一下,下午呢就在机房打了几盘杀,一起玩了玩狼人.不过晚上觉得还是要有点氛围了,于是稍稍打了几个模板,觉得正确率还不错,给自己一点自信的 ...

  7. Spring Batch学习

    今天准备研究下Spring Batch,然后看了一系列资料,如下还是比较好的教程吧. 链接: http://www.cnblogs.com/gulvzhe/archive/2011/12/20/229 ...

  8. extjs4 与 kindeditor

    <link rel="stylesheet" href="<?php echo Yii::app()->request->baseUrl;?> ...

  9. FormCreate & FormActivate & FormShow执行顺序演示

    procedure TForm1.FormCreate(Sender: TObject);begin  form1.Caption:=form1.Caption +'+Create'; end; pr ...

  10. web之困:现代web应用安全指南

    <web之困:现代web应用安全指南>在web安全领域有“圣经”的美誉,在世界范围内被安全工作者和web从业人员广为称道,由来自google chrome浏览器团队的世界顶级黑客.国际一流 ...