¿Esto es posible? En caso afirmativo, ¿cuáles son las tablas involucradas, en algún lugar para investigar?¿Ve todas las tablas que tienen claves foráneas a cierta columna en una tabla?
6
A
Respuesta
6
intentar algo como esto
select uc.table_name
from sys.user_cons_columns ucc
join sys.user_constraints uc
on uc.r_constraint_name = ucc.constraint_name
where constraint_type = 'R'
and ucc.table_name = :1
and ucc.column_name = :2
donde
:1 = referenced table
:2 = referenced column
2
select * from user_constraints where r_constraint_name =<PK_NAME>
donde <PK_NAME>
es el nombre de la restricción de clave primaria de la columna
2
Hay dos consultas candidatos que podrían ayudar aquí:
http://www.alberton.info/oracle_meta_info.html
SELECT alc.constraint_name,
CASE alc.constraint_type
WHEN 'P' THEN 'PRIMARY KEY'
WHEN 'R' THEN 'FOREIGN KEY'
WHEN 'U' THEN 'UNIQUE'
WHEN 'C' THEN 'CHECK'
END "constraint_type",
alc.DELETE_RULE "on_delete",
CASE alc.deferrable WHEN 'NOT DEFERRABLE' THEN 0 ELSE 1 END "deferrable",
CASE alc.deferred WHEN 'IMMEDIATE' THEN 1 ELSE 0 END "initially_deferred",
alc.search_condition,
alc.table_name,
cols.column_name,
cols.position,
r_alc.table_name "references_table",
r_cols.column_name "references_field",
r_cols.position "references_field_position"
FROM all_cons_columns cols
LEFT JOIN all_constraints alc
ON alc.constraint_name = cols.constraint_name
AND alc.owner = cols.owner
LEFT JOIN all_constraints r_alc
ON alc.r_constraint_name = r_alc.constraint_name
AND alc.r_owner = r_alc.owner
LEFT JOIN all_cons_columns r_cols
ON r_alc.constraint_name = r_cols.constraint_name
AND r_alc.owner = r_cols.owner
AND cols.position = r_cols.position
WHERE alc.constraint_name = cols.constraint_name
AND alc.constraint_name = 'TESTCONSTRAINTS_ID_FK'
AND alc.table_name = 'TESTCONSTRAINTS2';
Cuestiones relacionadas
- 1. ¿Cómo encontrar todas las tablas que tienen claves foráneas que hacen referencia a table.column particular y tienen valores para esas claves foráneas?
- 2. ¿Cómo obtener todas las tablas que tienen FK en otra tabla?
- 3. Eliminar una fila de SQL ignorando todas las claves y restricciones foráneas
- 4. Quiero mostrar todas las tablas que tienen el nombre de columna especificado
- 5. SQL, ¿Cómo consultar con múltiples claves foráneas en una tabla?
- 6. mysql - Claves foráneas mutuamente dependientes
- 7. Lista SQLite TODAS las claves foráneas en una base de datos
- 8. ¿Agregar una columna si no existe para todas las tablas?
- 9. Claves foráneas en MySQL?
- 10. Consulta SQL para encontrar todas las tablas en una base de datos que tienen una columna con un nombre específico
- 11. Claves foráneas vs partición
- 12. ¿Cómo veo todas las claves externas en una tabla o columna?
- 13. MySQL encuentra claves foráneas no válidas
- 14. Encontrar todas las tablas relacionadas en una tabla determinada
- 15. Las claves foráneas deben ser Index en mySQL?
- 16. Dos claves foráneas en lugar de primaria
- 17. Uso de DbUnit con tablas que no tienen claves principales
- 18. ¿Es posible enumerar todas las claves foráneas en una base de datos?
- 19. ¿Demasiadas a muchas tablas tienen una clave principal?
- 20. Eliminar todas las clases que comienzan con una cierta cadena
- 21. Herencia + Claves foráneas
- 22. Forzar InnoDB para volver a verificar claves externas en una tabla/tablas?
- 23. MySQL selecciona las filas que no tienen columna correspondiente en la otra tabla
- 24. Hacer 2 tablas tienen los mismos tamaños de columna
- 25. Fingiendo actualizaciones de claves foráneas usando las claves de entidad
- 26. Optimizar la eliminación de una tabla a la que hacen referencia muchas teclas foráneas
- 27. Claves foráneas en esquemas alternativos con Oracle?
- 28. Asociación de rieles para dos claves foráneas para la misma tabla en una tabla
- 29. ¿Usando Django bulk_create objetos en claves foráneas?
- 30. MySQL: ¿Cómo determinar las relaciones de claves foráneas mediante programación?