如何将所有具有FK的表转移到另一个表?

时间:2009-04-08 19:10:15

标签: oracle foreign-keys

有没有办法让所有具有外键的表到oracle中带有查询的另一个表?

3 个答案:

答案 0 :(得分:15)

以下是a good article的答案:

select owner,constraint_name,constraint_type,table_name,r_owner,r_constraint_name
from all_constraints 
where constraint_type='R'
and r_constraint_name in (select constraint_name from all_constraints 
where constraint_type in ('P','U') and table_name='TABLE_NAME');

答案 1 :(得分:1)

假设父表和子表都在同一模式中,请执行以下操作:

select t1.table_name child_table, t1.constraint_name, t2.table_name parent_table

from user_constraints t1, user_constraints t2

where t1.r_constraint_name = t2.constraint_name

请注意,r_constraint_name仅填充FK(类型“R”)约束,因此自联接仅返回感兴趣的信息

答案 2 :(得分:0)

如果我们知道父密钥,只需改变juan对员工表的回答

select *
from user_constraints 
where R_CONSTRAINT_NAME='EMP_EMP_ID_PK'
and constraint_type='R'