Oracle系列(二): Oracle表的外键查询

时间:2022-02-13 12:06:54

在执行数据库删除操作时,外键关联是令我们最烦的一个东西,有了外键关联,就不允许随意删除数据,那么怎知道这个外键关联度的外键属于那个表?

select * from user_cons_columns cl where cl.constraint_name = '外键名'

这样,我们就可以看到这个外键所关联的表了

Oracle系列(二): Oracle表的外键查询

还有一种情况是我不知道有哪几个表关联了我的表中的字段,我想全部找出来怎么办?

SELECT a.owner,     A.TABLE_NAME      primary_table_name,    A.CONSTRAINT_NAME primary_table_key_name,    b.owner,    B.TABLE_NAME      foreign_table,    B.CONSTRAINT_NAME foreign_table_foreign_key_name,    B.STATUS          foreign_table_foreign_key_stat   FROM DBA_CONSTRAINTS A, DBA_CONSTRAINTS B   WHERE A.CONSTRAINT_NAME = B.R_CONSTRAINT_NAME   and B.CONSTRAINT_TYPE = 'R'    AND a.TABLE_NAME = 'tablename' and a.owner='database' and  b.owner='database'

这样就可以查到这张表所有的外键关联表了

Oracle系列(二): Oracle表的外键查询