知道一张表的主键,如何查找该主键被哪些表引用(转)

知道一张表的主键,如何查找被哪些表引用??

方法一:

知道主键找到引用该主键的被哪些表引用:

SELECT P.TABLE_NAME 主键所在的表, C.TABLE_NAME 外键所在的表
  FROM ALL_CONSTRAINTS P, ALL_CONSTRAINTS C
 WHERE P.TABLE_NAME = 'DEPT'  --主键所在表的表名称
   AND P.OWNER = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')
   AND C.OWNER = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')
   AND C.CONSTRAINT_TYPE = 'R'
   AND P.CONSTRAINT_NAME = C.R_CONSTRAINT_NAME;

查看外键来源于哪些表:

SELECT CL.TABLE_NAME
  FROM USER_CONS_COLUMNS CL
  LEFT JOIN USER_CONSTRAINTS C
    ON CL.CONSTRAINT_NAME = C.R_CONSTRAINT_NAME
 WHERE C.CONSTRAINT_TYPE = 'R'
   AND C.TABLE_NAME = 'EMP'; --外键所在的表的表名称,注:表名称大写

此处参考: CSDN博客 http://blog.csdn.net/esunshine1985/article/details/22656217 

方法二:使用toad工具,具体参考:百度知道  https://zhidao.baidu.com/question/369008837.html



posted @ 2017-09-02 23:51  VNX  阅读(944)  评论(0编辑  收藏  举报