Oracle 如何使用脚本查询所有数据表之间的主外键关系呢?


摘要:
下文讲述oracle数据库中,使用脚本查询数据表之间的主外键关系的方法,如下所示:
实验环境:oracle


实现思路:
通过检索系统表 user_constraints
user_constraints
user_cons_columns
找出主外键的关系信息

----查看整个数据库下的主外键表信息
  select a.table_name 主数据表, 
       b.table_name   数据子表, 
       column_name    数据键名称 
from 
      user_constraints a, user_constraints b, user_cons_columns c 
where 
      a.constraint_name = b.r_constraint_name 
and   a.constraint_name = c.constraint_name 
order by 1, 2, 4;

----查看特定“数据表”下的主外键表信息
select a.owner 主键所有者
,a.table_name 主键数据表
,b.column_name 主键数据列
,C.OWNER 外键所有者
,c.table_name 外键数据表
,d.column_name 外键数据列
from user_constraints  a
left join user_cons_columns b
    on  a.constraint_name=b.constraint_name
left join user_constraints C
    ON C.R_CONSTRAINT_NAME=a.constraint_name
left join user_cons_columns d
   on c.constraint_name=d.constraint_name
where  a.constraint_type='P'
    and  a.table_name='数据表名称' 
order by a.table_name