본문 바로가기

Study/Oracle

Oracle : 테이블 제약조건 확인하기

일단 테이블에 어떤 제약조건이 걸려 있는지, 제약조건의 이름을 알아낸다.

SELECT table_name, constraint_name, constraint_type, search_condition
        FROM   USER_CONSTRAINTS
        WHERE TABLE_NAME ='테이블명';


결과 ------------------------------

TABLE_NAME      CONSTRAINT_NAME    C
--------------   --------------------    -
TRS_RESERVE     TRS_RESERVE_PK      P



만약 특정 테이블에 걸려 있는 모든 제약조건을 알아보려면 다음을 실행한다.

SELECT  SUBSTR(A.COLUMN_NAME,1,15) COLUMN_NAME, DECODE(B.CONSTRAINT_TYPE, 'P','PRIMARY KEY', 'U','UNIQUE KEY', 'C','CHECK OR NOT NULL', 'R','FOREIGN KEY') CONSTRAINT_TYPE, A.CONSTRAINT_NAME   CONSTRAINT_NAME
        FROM  USER_CONS_COLUMNS  A,  USER_CONSTRAINTS  B   
        WHERE  A.TABLE_NAME = UPPER('&table_name')   
            AND  A.TABLE_NAME = B.TABLE_NAME   
            AND  A.CONSTRAINT_NAME = B.CONSTRAINT_NAME   
        ORDER BY 1;  
 


결과 ---------------------------------------

COLUMN_NAME   CONSTRAINT_TYPE   CONSTRAINT_NAME
--------------   -----------------       -------------------
CATGID             PRIMARY KEY            TRS_RESERVE_PK
COMPID             PRIMARY KEY            TRS_RESERVE_PK
RSID                 PRIMARY KEY            TRS_RESERVE_PK
RVID                 PRIMARY KEY            TRS_RESERVE_PK