查询表的外键关系

Mar*_*ddy 23 sql database oracle oracle10g

对于给定的表'foo',我需要一个查询来生成一组具有指向foo的外键的表.我正在使用Oracle 10G.

小智 42

这应该工作(或接近):

select table_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='<your table here>'); 
Run Code Online (Sandbox Code Playgroud)


小智 5

以下声明应给予孩子们及其所有后代。我已经在 Oracle 10 数据库上进行了测试。

SELECT  level, main.table_name  parent,
    link.table_name child
FROM    user_constraints main, user_constraints link    
WHERE   main.constraint_type    IN ('P', 'U')
AND link.r_constraint_name  = main.constraint_name
START WITH main.table_name  LIKE UPPER('&&table_name')
CONNECT BY main.table_name = PRIOR link.table_name
ORDER BY level, main.table_name, link.table_name
Run Code Online (Sandbox Code Playgroud)