时间:2021-07-01 10:21:17 帮助过:7人阅读
在Oracle Check约束的表达式中必须引用到表中的一个或多个字段,并且表达式的计算结果必须是一个布尔值可以在表级或字段级定义对
◆在Oracle Check约束的表达式中必须引用到表中的一个或多个字段,并且表达式的计算结果
必须是一个布尔值
◆可以在表级或字段级定义
◆对同一个字段可以定义多个Oracle Check约束,同时也可以定义NOT NULL约束
1. create table employees
2. (sal number(7,2)
3. constraint emp_sal_ck1 check (sal > 0)
4. )
5. alter table employees
6. add constraint emp_sal_ck2 check (sal < 20000)
删除约束
◆alter table dept drop unique (dname,loc) --指定约束的定义内容
◆alter table dept drop constraint dept_dname_loc_uk --指定约束名
删除约束时,,默认将同时删除约束所对应的索引,如果要保留索引,用KEEP INDEX关键字如果
要删除的约束正在被其它约束引用,通过ALTER TABLE..DROP语句中指定CASCADE关键字能够同
时删除引用它的约束利用下面的语句在删除DEPT表中的PRIMARY KEY约束时,同时将删除其它表
中引用这个约束的FOREIGN KEY约束:
alter table dept drop primary key cascade
禁用/激活约束(禁用/激活约束会引起删除和重建索引的操作)
◆alter table employees disable/enable unique email
◆alter table employees disable/enable constraint emp_ename_pk
◆alter tabel employees modify constraint emp_pk disable/enable
◆alter tabel employees modify constraint emp_ename_phone_uk disable/enable
如果有FOREIGN KEY约束正在引用UNIQUE或PRIMARY KEY约束,则无法禁用这些UNIQUE或PRIMARY
KEY约束,这时可以先禁用FOREIGN KEY约束,然后再禁用UNIQUE或PRIMARY KEY约束;或者可以
在ALTER TABLE...DISABLE语句中指定CASCADE关键字,这样将在禁用UNIQUE或PRIMARY KEY约束
的同时禁用那些引用它们的FOREIGN KEY约束,如:
alter table employees disable primary key cascade
约束数据字典
◆all_constraints/dba_constraints/user_constraints 约束的基本信息,包括约束的名称,
类型,状态(约束类型:C(Oracle Check约束),P(主码约束),R(外部码约束),U(唯一码约束))
◆all_cons_columns/dba/user 约束对应的字段信息