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 강좌는 개인의 학습용으로만 사용 할 수 있습니다. 학원 홍보용이나 수익을 얻기 위한 용도로
사용을 하시면 안됩니다. ^^ |
|
|