본문 바로가기

DB/Oracle

외래키 조회

user_constraints, user_cons_columns 딕셔너리에서 외래키 조회 가능합니다 ㅎㅎ

select a.constraint_name, a.table_name, b.column_name, a.constraint_type, a.r_constraint_name 
from user_constraints a, user_cons_columns b
where 
a.constraint_name=b.constraint_name;


정도로 출력해보시면 됩니다..

( user_constratints는 제약조건 정보를 가지고 있고, user_cons_columns는 제약조건에 대한 컬럼 정보를 담고 있습니다.)

constraint_name = 제약조건 명 (user_constraints)

table_name = 테이블 명 (user_constraints)

column_name = 컬럼명 (user_cons_columns)

constraint_type = 제약조건 유형 (user_constraints)

 - P : 기본키 (Primary Key)

 - R : 외래키 (Foreign Key)

 - U : 고유값 (Unique)

 - C : 체크 (Not Null, Check). search_condition 컬럼에서 내용 확인 가능합니다.

r_constraint_name = 참조하고 있는 제약조건 명 (user_constraints)


예를 들자면 이정도로 조회해볼 수 있겠네요.

DEPT_ID_PK 제약조건을 보면, DEPARTMENTS 테이블의 기본키이고, 컬럼명은 DEPARTMENT_ID 입니다.

그리고 EMP_DEPT_FK를 보시면, EMPLOYEES 테이블의 DEPARTMENT_ID 컬럼을 나타내며,

DEPT_ID_PK 제약조건을 참조하고 있습니다.

즉, EMPLOYEES 테이블의 DEPARTMENT_ID는 DEPARTMENTS 테이블의 DEPARTMENT_ID를 참조하는,

부모 자식 관계가 됩니다.

'DB > Oracle' 카테고리의 다른 글

ORA-00918  (1) 2016.06.24
ORA-12081, 테이블 read only  (0) 2016.06.24
ORA-02292  (0) 2016.06.22
ORA-02449, 부모 테이블 삭제  (0) 2016.06.22
ORA-12899  (1) 2016.06.14