首页 > Linux操作系统 > Linux操作系统 > sql 查询 主外键的 一点心得
long long ago建了2个表有主外键,只记得在users表空间叫啥,表名估计只记得个大概,我现在要truncate 其中一张,肯定不行吧,但又不知道哪2张表有主外键。咋整,help~~~~~!!!~~~~~
别把dba_tables 这个视图给忘了hoho~!~!
select owner,table_name,tablespace_name from dba_tables where tablespace_name='USERS';
所有表的主外键关系查询:
select a.table_name 主表,
b.table_name 子表,
column_name 键,
substr(position,1,1) P
from
user_constraints a, user_constraints b, user_cons_columns c
where
a.constraint_name = b.r_constraint_name
and a.constraint_name = c.constraint_name
order by 1, 2, 4;
查询单个表的所有主外键关系
select a.owner 主键拥有者
,a.table_name 主键表
,b.column_name 主键列
,C.OWNER 外键拥有者
,c.table_name 外键表
,d.column_name 外键列
from user_constraints a
left join user_cons_columns b
on a.constraint_name=b.constraint_name
left join user_constraints C
ON C.R_CONSTRAINT_NAME=a.constraint_name
left join user_cons_columns d
on c.constraint_name=d.constraint_name
where a.constraint_type='P'
and a.table_name='XXX' --需要查看主外键关系的表
order by a.table_name
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22907091/viewspace-691961/ ,如需转载,请注明出处,否则将追究法律责任。