oracle 找出主鍵被哪些表的欄位作為外來鍵來使用
阿新 • • 發佈:2018-12-22
表t_sjzxj_dbitem中的欄位id,被其他表作為外來鍵,現有個需求在刪除t_sjzx_dbitem中的記錄時,將其關聯的記錄一併刪除,先用sql找出id被哪些表的哪個欄位做了外來鍵關聯,然後再將關聯的記錄一起刪除。
select c.TABLE_NAME tablename,c.constraint_name foreignname,u.column_name columnname
from all_constraints p, all_constraints c,user_cons_columns u
where p.table_name = 'T_SJZX_DBITEM'
and p.OWNER = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')
and c.OWNER=SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA')
and c.constraint_type = 'R'
and c.CONSTRAINT_NAME=u.constraint_name
and p.CONSTRAINT_NAME = c.R_CONSTRAINT_NAME
1
2
3
4
5
6
7
8
表名需用大寫字母才可以查到
---------------------
作者:wyljz
來源:CSDN
原文:https://blog.csdn.net/wyljz/article/details/81559657