oracle中constraints,oracle constraints(2)
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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php记录邮件发送,有关php邮件发送一
- 下一篇: c语言程序设计精髓第二周,2实型数据C语