延迟约束验证
ALTERTABLEAAAADD(CONSTRAINTAAA_PKPRIMARYKEY(a)DEFERRABLE);
ALTERTABLEBBB
ADD(CONSTRAINTBBB_FKFOREIGNKEY(a)
REFERENCESAAA(a)
ONDELETECASCADEDEFERRABLE)
CREATEORREPLACETRIGGERID_TRGAFTERUPDATEONAAAFOREACHROW
BEGIN
UPDATEBBBSETa=:NEW.aWHEREa=:OLD.a;
END;
查看约束
通过查看 USER_CONSTRAINTS 表可得到用户的所有约束.
SQL>SELECTconstraint_name,constraint_type,
2search_condition
3FROMuser_constraints
4WHEREtable_name='EMP';
CONSTRAINT_NAMECSEARCH_CONDITION
--------------------------------------------------
SYS_C00674CEMPNOISNOTNULL
SYS_C00675CDEPTNOISNOTNULL
EMP_EMPNO_PKP
...
查看约束建立在哪些列
通过查询USER_CONS_COLUMNS 视图可获得约束建立在哪些列上
SQL>SELECTconstraint_name,column_name
2FROMuser_cons_columns
3WHEREtable_name='EMP';
CONSTRAINT_NAMECOLUMN_NAME
-----------------------------------------------
EMP_DEPTNO_FKDEPTNO
EMP_EMPNO_PKEMPNO
EMP_MGR_FKMGR
SYS_C00674EMPNO
SYS_C00675DEPTNO
-----------------------------------------------
constraint_type
约束的类型有如下几种:
C(checkconstraintonatable)
P(primarykey)
U(uniquekey)
R(ReferentialAKAForeignKey)
V(withcheckoption,onaview)
O(withreadonly,onaview)







评论列表