Как получить все таблицы, которые имеют FK, к другой таблице? - PullRequest
6 голосов
/ 08 апреля 2009

Есть ли способ получить все таблицы с внешними ключами в другой таблице в Oracle с помощью запроса?

Ответы [ 3 ]

15 голосов
/ 08 апреля 2009

Вот хорошая статья с ответом:

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');
1 голос
/ 08 апреля 2009

Предполагая, что родительская и дочерняя таблицы находятся в одной и той же схеме, выполните следующие действия:

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'), поэтому самосоединение возвращает только интересующую информацию

0 голосов
/ 24 июля 2016

если мы знаем родительский ключ, просто изменили ответ Хуана с таблицей сотрудников

select *
from user_constraints 
where R_CONSTRAINT_NAME='EMP_EMP_ID_PK'
and constraint_type='R'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...