IT/Database
[Oracle] 테이블에 외래키로 연결되있는 테이블 목록보기
yeTi
2017. 9. 6. 12:11
안녕하세요. yeTi입니다.
오늘은 오라클에서 한 테이블을 외래키로 연결하여 사용중인 테이블의 목록을 확인하는 방법을 알아보고자 합니다.
쿼리는 다음과 같습니다.
SELECT A.TABLE_NAME
FROM all_cons_columns a
JOIN all_constraints c ON a.owner = c.owner
AND a.constraint_name = c.constraint_name
JOIN all_constraints c_pk ON c.r_owner = c_pk.owner
AND c.r_constraint_name = c_pk.constraint_name
WHERE c.constraint_type = 'R'
AND c_pk.table_name = '[테이블 명]'
AND A.OWNER = '[계정 명]'
GROUP BY A.TABLE_NAME
ORDER BY A.TABLE_NAME;
쿼리에 대한 설명은 다음과 같습니다.
- constraint_type 컬럼을 R로 설정하여 참조 무결성을 가지는 것만 조회합니다.
- c_pk.table_name 에 외래키로 연결하고 있는 테이블 명이 있습니다.
- A.OWNER 를 활용하여 계정별 테이블 종속성을 확인할 수 있습니다.
참고 문헌
- stack overflow : https://stackoverflow.com/questions/1729996/list-of-foreign-keys-and-the-tables-they-reference