为了账号安全,请及时绑定邮箱和手机立即绑定

外键列表及其引用的表

/ 猿问

外键列表及其引用的表

红颜莎娜 2019-08-16 14:32:13

外键列表及其引用的表

我正在尝试查找一个查询,它将返回一个表的外键列表以及它们引用的表和列。我在那里一半

SELECT a.table_name, 
       a.column_name, 
       a.constraint_name, 
       c.ownerFROM ALL_CONS_COLUMNS A, ALL_CONSTRAINTS C  
where A.CONSTRAINT_NAME = C.CONSTRAINT_NAME 
  and a.table_name=:TableName 
  and C.CONSTRAINT_TYPE = 'R'

但我仍然需要知道此键引用了哪个表和主键。我怎么会这样?


查看完整描述

3 回答

?
一只斗牛犬

引用的主键在列r_owner和r_constraint_name表中描述ALL_CONSTRAINTS。这将为您提供所需的信息:


SELECT a.table_name, a.column_name, a.constraint_name, c.owner, 

       -- referenced pk

       c.r_owner, c_pk.table_name r_table_name, c_pk.constraint_name r_pk

  FROM all_cons_columns a

  JOIN all_constraints c ON a.owner = c.owner

                        AND a.constraint_name = c.constraint_name

  JOIN all_constraints c_pk ON c.r_owner = c_pk.owner

                           AND c.r_constraint_name = c_pk.constraint_name

 WHERE c.constraint_type = 'R'

   AND a.table_name = :TableName


查看完整回答
反对 回复 2019-08-16
?
烙印99

试试这个:

select * from all_constraints where r_constraint_name in (select constraint_name 
from all_constraints where table_name='YOUR_TABLE_NAME');


查看完整回答
反对 回复 2019-08-16

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信