PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Obtenir une liste des tables dont dépend une vue/table dans PostgreSQL

En utilisant les informations d'Andy Lester, j'ai pu trouver les requêtes suivantes pour récupérer les informations dont j'avais besoin.

Obtenir les tables auxquelles les clés étrangères font référence :

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;

Obtenir les tables auxquelles une vue ou les règles d'une table font référence :

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;