programmera.net -> oracle -> normal för utskrift | info@programmera.net |
USER_CONSTRAINTS
1. USER_CONSTRAINTS 2. Exempel |
1. USER_CONSTRAINTS
Tabellen USER_CONSTRAINTS håller reda på vilka restriktioner som finns i användarens schema. Tabellen har följande utseende:
Speciellt bör tilläggas att kolumnen CONSTRAINT_TYPE innehåller förkortningen på kolumnens typ (C,U,P,R).
SQL> DESC USER_CONSTRAINTS;
Name Null? Type
----------------------------------------- -------- ----------------------------
OWNER NOT NULL VARCHAR2(30)
CONSTRAINT_NAME NOT NULL VARCHAR2(30)
CONSTRAINT_TYPE VARCHAR2(1)
TABLE_NAME NOT NULL VARCHAR2(30)
SEARCH_CONDITION LONG
R_OWNER VARCHAR2(30)
R_CONSTRAINT_NAME VARCHAR2(30)
DELETE_RULE VARCHAR2(9)
STATUS VARCHAR2(8)
DEFERRABLE VARCHAR2(14)
DEFERRED VARCHAR2(9)
VALIDATED VARCHAR2(13)
GENERATED VARCHAR2(14)
BAD VARCHAR2(3)
LAST_CHANGE DATE
2. Exempel
Vi skapade tidigare två tabller; EMP och DEP med följande kolumner:
Vi tittar på raderna i USER_CONSTRAINTS för dessa två tabeller:
Vi har alltså följande typer av restriktioner:
SQL> SELECT constraint_name, constraint_type, table_name, status, index_name
2 FROM user_constraints
3 ORDER BY constraint_name;
CONSTRAINT_NAME C TABLE_NAME STATUS INDEX_NAME
-------------------- - -------------------- -------- ------------------------------
CONS_FK_EMP_DEP R EMP ENABLED
CONS_PK_DEP P DEP ENABLED CONS_PK_DEP
CONS_PK_EMP P EMP ENABLED CONS_PK_EMP
SYS_C005311 C EMP ENABLED
SYS_C005312 C EMP ENABLED
SYS_C005313 C DEP ENABLED
6 rows selected.
Alla restriktionerna är ENABLED (eftersom vi inte har gjort DISABLE på dem).