2012/7/19 Marcos Aurelio Nobre <[email protected]>

> Boa noite pessoALL.
>
> Estou com a seguinte necessidade: eu preciso descobrir quais são as
> constraints de foreign-key
> que estão fazendo referencia à tabelaX(colunaPK) ?
>
> Meu banco de dados contém vários schemas e cada um, muitas tabelas. Então,
> por meio de
> pgadmin, está meio desumano "entrar" em cada schema e observar cada tabela
> verificando
> qual delas contém uma foreign-key para uma certa tabela:
> schemaX.tabelaX(colunaPk).
>

Bom, o psql já traz isso, o pgAdmin não??


>
> Daí, penso que consultar o catálogo ou algumas sysTables para "querar"
> essa informação, é
> algo mais racional / viável.
>
> Alguém sabe que "querie" eu poderia aplicar no banco para obter essa
> informação ?
>
>
Isso te traz as tabelas e chaves estrangeiras:

SELECT conname, conrelid::pg_catalog.regclass,
  pg_catalog.pg_get_constraintdef(c.oid, true) as condef
FROM pg_catalog.pg_constraint c
  JOIN pg_catalog.pg_class r ON r.oid = c.confrelid
  JOIN pg_catalog.pg_namespace n ON n.oid = r.relnamespace
WHERE r.relname = '*<nome tabela>*' AND n.nspname = '*<nome schema>*' AND
c.contype = 'f'
ORDER BY 1

Atenciosamente,
--
Matheus de Oliveira
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a