您在这里:首页 > 学员专区 > 技术文章
Oracle视频
Oracle
CUUG课程

管理约束(三)--禁止和激活约束

 

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(88587026)
CUUG热门培训课程
Oracle DBA就业培训
CUUG名师
网络课程
技术沙龙
最新动态

总机:(010)-88589926,88589826,88587026 QQ讨论群:243729577 182441349 邮箱:cuug_bj@cuug.com
通信地址:北京市海淀区紫竹院路98号北京化工大学科技园609室(CUUG)邮政编码:100089 
中国UNIX用户协会 Copyright 2010  ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号  京公网安备110108006275号