Oracle Database TIP
제약 조건의 확인 5 0 36,575

by 김정식 제약 조건 USER_CONS_COLUMNS USER_CONSTRAINTS USER_CONS_COLUMNS [2002.02.03]


테이블에 걸려있는 제약 조건의 확인

  - USER_CONS_COLUMNS : 컬럼에 할당된 제약 조건을 볼 수 있다.

  - USER_CONSTRAINTS : 유저가 소유한 모든 제약 조건을 불 수 있다.

SQL> 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;   

-- 테이블 명을 입력 하면 된다. 
table_name의 값을 입력하십시오: emp2
 
COLUMN_NAME  CONSTRAINT_TYPE   CONSTRAINT_NAME
------------ ----------------- -------------------------
DEPTNO       CHECK OR NOT NULL SYS_C001362   
             FOREIGN KEY       EMP2_FK_DEPTNO
EMPNO        PRIMARY KEY       EMP2_PK_EMPNO
ENAME        CHECK OR NOT NULL EMP2_NN_ENAME
MGR          UNIQUE KEY        EMP2_UP_MGR
    

테이블의 특정 컬럼에 걸려있는 제약 조건의 확인

  USER_CONS_COLUMNS : 컬럼에 할당된 제약 조건을 볼 수 있다.

 
SQL> SET LINESIZE 300

SQL> 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');   

table_name의 값을 입력하십시오: emp2
column_name의 값을 입력하십시오: empno
 
TABLE_NAMES   COLUMN_NAME    CONSTRAINT_NAME
------------  -------------  -----------------
EMP2          EMPNO          EMP2_PK_EMPNO
    

- 강좌 URL : http://www.gurubee.net/lecture/1144

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입