PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Obtendo uma lista de tabelas das quais uma visualização/tabela depende no PostgreSQL


Usando as informações de Andy Lester, consegui fazer as seguintes consultas para recuperar as informações de que precisava.

Obtenha as tabelas às quais as chaves estrangeiras se referem:
SELECT cl2.relname AS ref_table
FROM pg_constraint as co
JOIN pg_class AS cl1 ON co.conrelid=cl1.oid
JOIN pg_class AS cl2 ON co.confrelid=cl2.oid
WHERE co.contype='f' AND cl1.relname='TABLENAME'
ORDER BY cl2.relname;

Obter tabelas às quais uma exibição ou regras de uma tabela se referem:
SELECT cl_d.relname AS ref_table
FROM pg_rewrite AS r
JOIN pg_class AS cl_r ON r.ev_class=cl_r.oid
JOIN pg_depend AS d ON r.oid=d.objid
JOIN pg_class AS cl_d ON d.refobjid=cl_d.oid
WHERE cl_d.relkind IN ('r','v') AND cl_r.relname='TABLENAME'
GROUP BY cl_d.relname
ORDER BY cl_d.relname;