PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come verificare se esiste lo schema pubblico di PostgreSQL?

Le informazioni da information_schema.schemata dipende dal ruolo a cui sei connesso, quindi non è proprio la vista giusta da interrogare per scoprire gli schemi in generale.

Il documento su information_schema.schemata in 9.3 dice:

Tuttavia non è del tutto chiaro (almeno per me) solo da quella frase, perché non puoi vedere public .

In un post sulla mailing list, Tom Lane ha una spiegazione che va un po' oltre:
Vedi http://www.postgresql.org/message-id/[email protected]

La sua conclusione:

che assomiglia esattamente al problema in questa domanda.

In conclusione:usa pg_namespace invece di information_schema.schemata

Questo è stato modificato nella versione 9.4 per conformarsi a ciò che gli utenti si aspettano. Il documento corrente dice:

USAGE il privilegio su uno schema è ora sufficiente per ottenerlo da questa vista.