일단 테이블에 어떤 제약조건이 걸려 있는지, 제약조건의 이름을 알아낸다.
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
'Study > Oracle' 카테고리의 다른 글
Oracle : 열을 행으로 변환 (max 함수) (0) | 2012.07.24 |
---|---|
Oracle : 시퀀스 생성,조회,삭제 (0) | 2012.07.16 |
Oracle : 제약 조건(PK, FK, default, unique, check)의 이해 및 실습 (0) | 2012.07.16 |
Oracle : Alter table 사용해서 테이블 구조 변경하기 (0) | 2012.07.16 |
Oracle : 컬럼 추가, 수정, 삭제 (0) | 2012.07.13 |