概述
oracle 约束的状态
oracle在创建约束后默认状态是enabled VALIDATED
SQL> create table T2
2 (
3 VID NUMBER,
4 VNAME VARCHAR2(10) not null,
5 VSEX VARCHAR2(10) not null
6 )
7 /
Table created
SQL> alter table t2 add constraints PK_T primary key (vid);
Table altered
SQL> select t.constraint_name, t.status, t.validated from user_constraints t;
CONSTRAINT_NAME STATUS VALIDATED
------------------------------ -------- -------------
SYS_C003762 ENABLED VALIDATED
SYS_C003763 ENABLED VALIDATED
PK_T ENABLED VALIDATED
oracle约束一共有4种状态:enabled validated, enabled novalidated, disadble validated, disable novalidated。
enabled validated 是默认状态,表示数据在约束创建时要对数据库内的数据进行校验并且同时约束后来插入的数据满足约束条件。
enabled novalidated 表示不对数据库内的数据进行校验而只是要求后来插入的数据满足约束条件。
SQL> select * from t2;
VID VNAME VSEX
---------- ---------- ----------
1 a y
2 b
3 c x
SQL> alter table t2 modify VSEX not null enable novalidate;
Table altered
SQL> select * from t2;
VID VNAME VSEX
---------- ---------- ----------
1 a y
2 b
3 c x
SQL> insert into t2 values ('4','d','');
insert into t2 values ('4','d','')
ORA-01400: 无法将 NULL 插入 ("PORTALDB"."T2"."VSEX")
SQL>
SQL> select t.constraint_name, t.status, t.validated from user_constraints t;
CONSTRAINT_NAME STATUS VALIDATED
------------------------------ -------- -------------
SYS_C003765 ENABLED VALIDATED
PK_T ENABLED VALIDATED
SYS_C003768 ENABLED NOT VALIDATED
对于唯一约束和主键约束由于在创建时候要创建唯一索引,所以在普通表中如果表中数据有违反约束�
最后
以上就是温婉花瓣为你收集整理的oracle中constraints,oracle constraints(2)的全部内容,希望文章能够帮你解决oracle中constraints,oracle constraints(2)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复