'Constraints'에 해당되는 글 1건

  1. 2010.01.03 제약조건 확인
ORACLE/SCRIPT2010. 1. 3. 13:12
반응형
1. 테이블에 걸려있는 제약 조건의 확인

- 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,      -- 제약조건 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

  emp2 테이블의 모든 제약조건을 보여주고 있습니다.

  SYS로 시작하는 CONSTRAINT명은 USER가 CONSTRAINT NAME을 지정하지 않아
  SYSTEM에서 DEFAULT로 생성한 경우를 보여 줍니다.

 

 


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

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

emp2테이블의 empno 컬럼의 제약조건을 보여 줍니다.


  ================================================
    * 데이터베이스 정보공유 커뮤니티 oracleclub.com
    * 강좌 작성자 : 김정식 (oramaster _at_ naver.com)
  ================================================
※ oracleclub 강좌를 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
※ oracleclub 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
    사용을 하시면 안됩니다. ^^

반응형
Posted by [PineTree]