约束性条件维护 oracle约束

来源:互联网 发布:徕卡 m8 知乎 编辑:程序博客网 时间:2024/06/05 18:12

约束性条件维护

Oracle 之中的约束条件是被保存在数据字典之中的,oracle数据库的完整性约束主要包括主键约束(primary key),非空约束(not null) ,唯一性约束(unique),检查约束(check)

和外键约束(foreign key)。

Not null 约束:可以使用 alter table tablename modify 语句对已经创建的表中的列删除或者重新定义not null 约束操作。

Unique 唯一性约束:用于要求所约束的列之中不能存在重复值,可以为一列或者多个列组合定义unique约束,oralce 会自动为具有unique约束的列建立一个唯一索引,可以同时建立not null和unique约束

检查约束Check :用于强制在约束中的列必须满足指定的表达式,在check约束之中不能包含子查询,和内置的sql函数,也不能包含rowid和rownum等伪列。

主键约束primary key :用于唯一的标识出表之中的每行数据,primary key 约束的列的值不能重复,也不能为NULL,oracle会自动的建立not null和unique  约束。

外键约束 foreign key:用于与其他表的列建立连接,定义主从表之间的联系

约束的状态:

启用验证状态(enable validate):oracle约束的默认状态,当将约束转变为此状态后,oracle会对新,旧数据进行约束检查,这种状态要求表中的所有的记录都满足约束状态。

启用非验证状态(Enable novalidate):oracle 会对新的数据进行约束检查,但已经存在的就数据可以不满足约束条件。

禁用验证状态(Disable validate):当将约束转变为此状态之后,约束将被禁用,不允许对表进行任何的DML操作,但是表中已经存在的数据仍然满足约束规则

禁用非验证状态(Enable novalidate):oracle对新,旧数据都不进行约束检查,这种状态下的所有的数据都可以不满足约束规则,

 

操作实例:

 Alter table tablename disableprimary key ;对表禁用主键

 

Alter table tablename modify constraint constraintname validate; 通过约束名称来改变约束状态

Alter  table  tablename disable primary key cascade; //对表进行主键禁用,并将对该主键的外键引用删除

 

添加约束与删除约束

Alter table tablename add constraint constraint_name constrainttype(约束类型)+约束条件

Add foreign key(列) references 表(列)

原创粉丝点击