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

Comment vérifier si le schéma public PostgreSQL existe ?

Les informations de information_schema.schemata dépend du rôle auquel vous êtes connecté, ce n'est donc pas vraiment la bonne vue à interroger pour découvrir les schémas en général.

La doc sur information_schema.schemata en 9.3 dit :

Cependant, il n'est pas tout à fait clair (du moins pour moi) à partir de cette phrase, pourquoi vous ne pouvez pas voir public .

Dans un message de liste de diffusion, Tom Lane a une explication qui va un peu plus loin :
Voir http://www.postgresql.org/message-id/[email protected]

Sa conclusion :

qui ressemble exactement au problème de cette question.

Conclusion :utilisez pg_namespace au lieu de information_schema.schemata

Cela a été modifié dans la version 9.4 pour se conformer aux attentes des utilisateurs. La documentation actuelle dit :

USAGE le privilège sur un schéma est maintenant suffisant pour l'obtenir à partir de cette vue.