1、禁止约束
04:55:47 SQL> alter table t1 disable novalidate constraint u_name;
Table altered.
04:55:48 SQL> select constraint_name,constraint_type,status,table_name from user_constraints
04:56:03 2 where table_name='T1';
CONSTRAINT_NAME C STATUS TABLE_NAME
------------------------------ - -------- ------------------------------
U_NAME U DISABLED T1
04:56:09 SQL>
2、激活约束
(1)使用ENABLE NOVALIDATE 选项激活约束
ENABLE NOVALIDATE 选项用于快速激活约束,但该选项只能确保新数据符合约束规则,而不会最已存在数据进行任何检查。使用ENABLE NOVALIDATE 选项激活约束时,不会再表上加锁,也不会影响其他用户在相应表上的DML操作。当数据处于运行高峰时,为了使约束快速生效 ,应使用该方法激活约束。实例如下:
04:55:47 SQL> alter table t1
04:59:47 2 enable novalidate constraint u_name;
Table altered.
05:00:09 SQL> select constraint_name,constraint_type,status,table_name from user_constraints
05:00:12 2 where table_name='T1';
CONSTRAINT_NAME C STATUS TABLE_NAME
------------------------------ - -------- ------------------------------
U_NAME U ENABLED T1
(2)使用 ENABLE VALIDATE 选项激活约束
使用 ENABLE VALIDATE 选项激活约束时,会在表上加锁,此时不允许其他用户在相应表上执行DML操作。为了确保已装载数据满足约束规则 ,在数据库运行的空闲时间使用该选项激活约束。使用 ENABLE NOVALIDATE 可以快速激活约束,但不会对已存在数据进行任何检查;使用 ENABLE VALIDATE 选项不仅会检查新键入的数据,同时要求已存在数据必须满足约束规则。示例如下:
05:00:14 SQL> alter table t1
05:02:38 2 enable validate constraint u_name;
Table altered.
总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089
中国UNIX用户协会 Copyright 2010 ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号 京公网安备110108006275号