Oracle - 테이블, 컬럼 제약 조건의 확인하기

* 테이블에 걸려있는 제약 조건의 확인하기
USER_CONS_COLUMNS : 컬럼에 할당된 제약 조건을 볼 수 있다.
USER_CONSTRAINTS : 유저가 소유한 모든 제약 조건을 불 수 있다.


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;




* 테이블의 특정 컬럼에 걸려있는 제약 조건의 확인하기
USER_CONS_COLUMNS : 컬럼에 할당된 제약 조건을 볼 수 있다.


SELECT 

    SUBSTR(TABLE_NAME,1,15) TABLE_NAMES,
    SUBSTR(COLUMN_NAME,1,15) COLUMN_NAME,
    SUBSTR(CONSTRAINT_NAME,1,25) CONSTRAINT_NAME
FROM USER_CONS_COLUMNS
WHERE TABLE_NAME = UPPER('&table_name')
    AND COLUMN_NAME = UPPER('&column_name');