[Oracle] 오라클 - 제약조건 확인 / 부자 관계 출력 / 부모 테이블, 자식 테이블 목록
by mini_min[Oracle]
오라클 - 제약조건 확인 / 부자 관계 출력 / 부모 테이블, 자식 테이블 목록
다 외우진 못하니까 저장해두고 종종 쓸 코드 정리!😢
오라클 테이블 만들 때 절.대.필.요.해.
-- 제약조건 및 컬럼 확인
SELECT u1.table_name, column_name, constraint_type, u1.constraint_name, search_condition
FROM user_constraints u1
JOIN user_cons_columns u2 ON u1.constraint_name = u2.constraint_name
WHERE u1.table_name = UPPER('테이블명');
-- 부와 자 관계의 모든 테이블 출력
SELECT fk.owner, fk.constraint_name,
pk.table_name parent_table, fk.table_name child_table
FROM all_constraints fk, all_constraints pk
WHERE fk.r_constraint_name = pk.constraint_name AND fk.constraint_type = 'R'
ORDER BY fk.table_name;
-- 『테이블명』을 참조하는 모든 테이블 목록 출력(자식 테이블 목록 출력)
SELECT fk.owner, fk.constraint_name , fk.table_name
FROM all_constraints fk, all_constraints pk
WHERE fk.r_constraint_name = pk.constraint_name
AND fk.constraint_type = 'R'
AND pk.table_name = UPPER('테이블명')
ORDER BY fk.table_name;
-- 『테이블명』이 참조하고 있는 모든 테이블 목록 출력(부모 테이블 목록 출력)
SELECT table_name FROM user_constraints
WHERE constraint_name IN (
SELECT r_constraint_name
FROM user_constraints
WHERE table_name = UPPER('테이블명') AND constraint_type = 'R'
);
-- 『테이블명』의 부모 테이블 목록 및 부모 컬럼 목록 출력
-- 부모 2개 이상으로 기본키를 만든 경우 여러번 출력 됨
SELECT fk.constraint_name, fk.table_name child_table, fc.column_name child_column,
pk.table_name parent_table, pc.column_name parent_column
FROM all_constraints fk, all_constraints pk, all_cons_columns fc, all_cons_columns pc
WHERE fk.r_constraint_name = pk.constraint_name
AND fk.constraint_name = fc.constraint_name
AND pk.constraint_name = pc.constraint_name
AND fk.constraint_type = 'R'
AND pk.constraint_type = 'P'
AND fk.table_name = UPPER('테이블명');
'SQL쿼리' 카테고리의 다른 글
[Oracle] 오라클 - UPDATE JOIN VIEW / 서브쿼리 (0) | 2022.08.13 |
---|---|
[Oracle] 오라클 - OUTER JOIN (LEFT/RIGHT/FULL) (0) | 2022.08.13 |
[Oracle] 오라클 - 셀프 조인 / NON-EQUI JOIN (0) | 2022.08.11 |
[Oracle] 오라클 - 조인 (INNER JOIN 종류 / EQUI JOIN 등) (0) | 2022.08.11 |
[Oracle] 오라클 - 참조 키(외래 키, FOREIGN KEY) / 참조 키 관계 (0) | 2022.08.10 |
블로그의 정보
개발자 미니민의 개발로그
mini_min