programing

FK가 있는 모든 테이블을 다른 테이블로 이동하는 방법은 무엇입니까?

abcjava 2023. 9. 13. 22:16
반응형

FK가 있는 모든 테이블을 다른 테이블로 이동하는 방법은 무엇입니까?

쿼리를 사용하여 오라클의 다른 테이블에 대한 외래 키가 있는 모든 테이블을 가져올 수 있는 방법이 있습니까?

다음은 답이 있는 좋은 기사입니다.

select owner,constraint_name,constraint_type,table_name,r_owner,r_constraint_name
from all_constraints 
where constraint_type='R'
and r_constraint_name in (select constraint_name from all_constraints 
where constraint_type in ('P','U') and table_name='TABLE_NAME');

부모 테이블과 자식 테이블이 모두 동일한 스키마에 있다고 가정하면 다음을 수행합니다.

select t1.table_name child_table, t1.constraint_name, t2.table_name parent_table

from user_constraints t1, user_constraints t2

where t1.r_constraint_name = t2.constraint_name

r_constraint_name은 FK('R' 유형) 제약 조건에 대해서만 채워지므로 자체 조인은 관심 정보만 반환합니다.

만약 우리가 부모 키를 안다면, 방금 후안의 대답을 직원 테이블로 바꿨습니다.

select *
from user_constraints 
where R_CONSTRAINT_NAME='EMP_EMP_ID_PK'
and constraint_type='R'

언급URL : https://stackoverflow.com/questions/731413/how-to-get-all-tables-that-have-fks-to-another-table

반응형