查询以查找表关系类型

时间:2010-08-25 13:56:42

标签: oracle entity-relationship

使用Oracle,有什么办法可以执行查询来确定特定表与数据库中任何其他表的关系?到目前为止,我正在摆弄all_constraints表。

2 个答案:

答案 0 :(得分:6)

是的,您可以这样做:

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' 

答案 1 :(得分:3)

我认为您最好的选择是尝试从外键约束中提取尽可能多的信息。

在Database Journal上查看this article,详细解释外键数据挖掘。