知道一张表的主键,如何查找该主键被哪些表引用(转)
知道一张表的主键,如何查找被哪些表引用??
方法一:
知道主键找到引用该主键的被哪些表引用:
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