2007-03-21

Encontrar quem tem FK para uma dada tabela

Algumas vezes queremos saber quais as tabelas que ligam a uma outra nossa tabela usando uma foreign key (FK), chave estrangeira. Estas restrições normalmente conectam-se à PK de outra tabela (podendo tb se ligar por outra constraint dessa).
Apresento aqui o código para descobrir quem/tabela liga a uma dada tabela pelas FKs.
Instruções: Trocar 'USER_NAME' pelo nome do utilizador e 'TABLE_NAME' pelo nome da tabela.

SELECT f.owner,
f.table_name,
f.constraint_name
FROM all_constraints f
WHERE (f.r_owner, f.r_constraint_name) IN (
SELECT p.owner,
p.constraint_name
FROM all_constraints p
WHERE p.owner = upper('USER_NAME')
AND p.table_name = upper('TABLE_NAME'));


Atualização (2011-09-15): coloquei upper para facilitar a utilização do script

2 comments:

  1. Anonymous5/08/2007

    Parabéns pela dica simple, porém, funcional.

    ReplyDelete
  2. Muito bom, parabéns por compartilhar a dica.

    ReplyDelete

Os comentários são moderados.
The comments are moderated.