oracle10g系统管理之约束管理

 

1.         约束分类:

1)        NOT NULL:确保列不能为NULL。如果列上定义了NOT NULL 约束,插入数据时,必须为该列提供数据。

2)        UNIQUE约束用于唯一标识列的数据。当定义了唯一约束后,唯一约束列的列支不能重复,但允许列为NULL。当在表的某一列上定义了唯一约束后,默认情况下Oracle会自动基于唯一约束列建立唯一索引,并且索引名与约束名完全一致。

3)        PRIMARY KEY:主键约束

4)        FOREIGN KEY:外键约束,定义了主从表之间的关系。外键约束要定义在重表上,但主表必须具有主键约束或唯一约束。定义了外键约束后,要求外部健列的数据必须在主表的主键列中存在,或者为NULL

5)        CHECKCHECK约束用于强制表行数据必须满足的条件。

2.         约束的状态

1)        ENABLE VALIDATE(默认状态)当将约束转变为ENABLE VALIDATE状态时,要求新旧数据必须同时满足约束规则。假定在NAME列上定义了唯一约束,那么将约束转变为ENABLE VALIDATE状态时,NAME列上不能有重复值。

如果在定义和增加约束时不指定约束状态,则约束的默认状态为ENABLE VALIDATE状态。

2)        ENABLE NOVALIDATE 当约束转为此状态时,已存在数据可以不满足该约束,新增数据必须满足此约束规则。

3)        DISABLE VALIDATE 此状态不允许在表上执行任何DML操作。对于主键和唯一约束来说,会删除相应的唯一索引,但约束规则仍然有效。

该状态主要用于分区表和非分区表之间使用ALTER TABLE …EXCHANGE PARATITION命令进行数据交换。

4)        DISABLE NOVALIDATE对于主键和唯一约束来说,为删除相应的唯一索引,约束规则失效。

3.         使用延期约束检查 默认情况下,当执行DML操作时,如果键入了违反约束规则的数据,则会立即提示错误信息。但是在某些情况下,我们可能会希望在事务结束以后进行约束检查。如果要用此功能,我们必须在定义约束时,指定DEFERRABLE选项。示例如下:

deptno NUMBER(4) CONSTRAINT s_emp_fk REFERENCES s_dept(deptno) DEFERRABLE;

4.         显示约束信息

SELECT constraint_name, constraint_type,status,validate

FROM dba_constraints

WHERE owner=SCOTTAND table_name=EMPLOYEE’;

显示约束列:

SELECT column_name FROM dba_cons_columns WHERE owner=’’SCOTT’ AND constraints_name=’CHECK_JOB’;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值