SQL> alter table p_table disable novalidate primary key; alter table p_table disable novalidate primary key * ERROR at line 1: ORA-02297: cannot disable constraint (ORA1.PK_PTABLE_ID) - dependencies exist 说明:disable novalidate无法直接禁用主键,因为存在外键引用该主键. --先使用disable validate...
或是执行alter table test validate(或是Novalidate) constraint ck_id后每当执行了一次DML操作引起了存放于表中的数据的变化时都会进行一次约束条件检查,而进行该约束条件检查时存在于表中的数据也被称作已有的数据。
(By default a non-deferrable UNIQUE or PRIMARY KEY constraint will attempt to create a unqiue index. http://asktom.oracle.com/pls/asktom/f?p=100:11:0:::P11_QUESTION_ID:8806498660292) 加上DEFERRABLE关键字,问题成功解决: SQL> ALTER TABLE dept ADD (UNIQUE(deptno) DEFERRABLE ENABLE NOVALIDATE)...
Now it gets an ORA-00054 because "ENABLE NOVALIDATE constraint" needs a lock on the referenced tables (but these are currently locked by other load processes). Changes After upgrade from 10g to 11g Cause Sign In To view full details, sign in with your My Oracle Support account. Register ...
Oracle PL/SQL之ENABLE NOVALIDATE约束 在看Oracle约束时,看到ENABLE NOVALIDATE,意思是对自现在起及以后的数据启用约束,但是不管以前的数据怎样。 不过在实验的时候却出了一点小问题: SQL> create table dept as select * scott.dept where 1=2; Table created...
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; ...
1,ALTER TABLE MODIFY CONSTRAINT <constraint_name> ENABLE VALIDATE; 2,ALTER TABLE … ENABLE VALIDATE CONSTRAINT … 另外,10g以后的在线重定义操作提供一个方法DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS,支持复制原表上的约束等,这个复制过程实际上使用enable novalidate来加快重定义过程,新表中也是看不到not null属...
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; ...
首先对constraint的开启和关闭共有四种:enable validate;enable novalidate;disable validate;disable novalidate; 1,3没有什么好说的,2表示开启时不检查已存在数据,4表示不检查今后的数据. 为此做如下测试: 1.首先创建测试表 create table a (no number(5),name varchar2(10)); ...
ALTER TABLE 表名1 ADD CONSTRAINT 外键名 FOREING KEY (表1字段) REFENCES 表名2(表2字段)3.disable与enable约束 控制约束的约束,控制表的约束时禁⽌还是激活状态 disable:禁⽌状态,相当于该列没有约束,使⽤disable默认为Novalidate enable:激活状态,默认新创建的约束状态是激活状态,使⽤enable默认为...