PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie überprüfe ich, ob ein öffentliches PostgreSQL-Schema vorhanden ist?

Die Informationen aus information_schema.schemata hängt von der Rolle ab, mit der Sie verbunden sind, daher ist es nicht wirklich die richtige Ansicht, um Schemas im Allgemeinen abzufragen.

Das Dokument zu information_schema.schemata in 9.3 sagt:

Allerdings ist aus diesem Satz (zumindest für mich) nicht ganz klar, warum Sie public nicht sehen können .

In einem Mailinglisten-Post hat Tom Lane eine Erklärung, die etwas weiter geht:
Siehe http://www.postgresql.org/message-id/[email protected]

Sein Fazit:

was genau wie das Problem in dieser Frage aussieht.

Fazit:Verwenden Sie pg_namespace statt information_schema.schemata

Dies wurde in Version 9.4 geändert, um den Erwartungen der Benutzer zu entsprechen. Das aktuelle Dokument sagt:

USAGE Die Berechtigung für ein Schema reicht jetzt aus, um es aus dieser Ansicht zu erhalten.