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.