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:
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		
Speciellt bör tilläggas att kolumnen CONSTRAINT_TYPE innehåller förkortningen på kolumnens typ (C,U,P,R).

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:
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.

Vi har alltså följande typer av restriktioner:

  • R=Referens: Restriktionen CONS_FK_EMP_DEP är en "foreign key".
  • P=Primär nyckel: Restriktionerna CONS_PK_DEP och CONS_PK_EMP är primära nycklar. De har också ett tillhörande index.
  • C=Check: Restriktionerna som börjar på SYS_ är NOT NULL-restriktioner.
Alla restriktionerna är ENABLED (eftersom vi inte har gjort DISABLE på dem).