2009-04-08 19 views

Respuesta

12

Aquí es a good article con una respuesta:

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'); 
+0

Verificare esa vista - la consulta devuelve la tabla que tiene el FK, y necesitaría especificar una tabla y obtener cada otra tabla que tenga un FK – juan

+0

Lo edité con la consulta correcta del artículo, entonces yo podría aceptarlo – juan

1

Suponiendo que las tablas de los padres y el niño están en el mismo esquema haga lo siguiente:

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 

Tenga en cuenta que r_constraint_name está poblada sólo por FK (escriba 'R') restricciones, por lo que la unión automática solo devuelve información de interés

0

si conocemos la clave principal, solo alteramos la respuesta de juan con los empleados tabl e

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