首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Oracle SQL Developer中查找哪些表引用了给定表?

如何在Oracle SQL Developer中查找哪些表引用了给定表?
EN

Stack Overflow用户
提问于 2009-07-17 14:46:46
回答 7查看 351.4K关注 0票数 219

Oracle SQL Developer中,如果我正在查看一个表的信息,我可以查看约束,这让我可以看到外键(因此这个表引用了哪些表),我还可以查看依赖关系,以了解哪些包等引用了这个表。但我不确定如何查找哪些表引用了该表。

例如,假设我正在查看emp表。还有另一个表emp_dept,它捕获哪些员工在哪些部门工作,该表通过emp_id引用emp表的主键。有没有办法(通过程序中的一些UI元素,而不是SQL)发现emp_dept表引用了emp表,而我不必知道emp_dept表的存在?

EN

回答 7

Stack Overflow用户

发布于 2009-07-17 14:56:56

您可以从ALL_CONSTRAINTS视图中查询:

代码语言:javascript
复制
SELECT table_name
FROM ALL_CONSTRAINTS
WHERE constraint_type = 'R' -- "Referential integrity"
  AND r_constraint_name IN
    ( SELECT constraint_name
      FROM ALL_CONSTRAINTS
      WHERE table_name = 'EMP'
        AND constraint_type IN ('U', 'P') -- "Unique" or "Primary key"
    );
票数 12
EN

Stack Overflow用户

发布于 2015-08-11 02:14:05

SQL Developer 4.1于2015年5月发布,它添加了一个Model选项卡,其中显示了以实体关系图格式引用您的表的表的外键。

票数 9
EN

Stack Overflow用户

发布于 2014-12-01 20:00:28

代码语言:javascript
复制
SELECT DISTINCT table_name, 
                constraint_name, 
                column_name, 
                r_table_name, 
                position, 
                constraint_type 
FROM   (SELECT uc.table_name, 
               uc.constraint_name, 
               cols.column_name, 
               (SELECT table_name 
                FROM   user_constraints 
                WHERE  constraint_name = uc.r_constraint_name) r_table_name, 
               (SELECT column_name 
                FROM   user_cons_columns 
                WHERE  constraint_name = uc.r_constraint_name 
                       AND position = cols.position)           r_column_name, 
               cols.position, 
               uc.constraint_type 
        FROM   user_constraints uc 
               inner join user_cons_columns cols 
                       ON uc.constraint_name = cols.constraint_name 
        WHERE  constraint_type != 'C') 
START WITH table_name = '&&tableName' 
           AND column_name = '&&columnName' 
CONNECT BY NOCYCLE PRIOR table_name = r_table_name 
                         AND PRIOR column_name = r_column_name; 
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1143728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档