Запрос, чтобы найти типы отношений таблицы - PullRequest
3 голосов
/ 25 августа 2010

Используя Oracle, можно ли каким-либо образом выполнить запрос, чтобы определить, какую связь конкретная таблица имеет с любыми другими таблицами в моей базе данных?На данный момент я возлюсь с таблицей all_constraints.

Ответы [ 2 ]

6 голосов
/ 25 августа 2010

Да, вы можете сделать это, например:

select p.table_name, 'is parent of ' rel, c.table_name
from   user_constraints p
join   user_constraints c on c.r_constraint_name = p.constraint_name
                         and c.r_owner = p.owner
where p.table_name = 'MYTABLE'    
union all
select c.table_name, 'is child of ' rel, p.table_name
from   user_constraints p
join   user_constraints c on c.r_constraint_name = p.constraint_name
                         and c.r_owner = p.owner
where c.table_name = 'MYTABLE' 
3 голосов
/ 25 августа 2010

Я думаю, что ваша лучшая ставка - попытаться извлечь как можно больше информации из ограничений внешнего ключа .

Ознакомьтесь с этой статьей в Database Journal, в которой подробно объясняется извлечение данных из внешнего ключа.

...