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

Hvordan kontrollerer man, om PostgreSQL offentligt skema eksisterer?

Oplysningerne fra information_schema.schemata afhænger af den rolle, du er forbundet med, så det er ikke rigtig den rigtige visning at søge for at finde skemaer generelt.

dokumentet på information_schema.schemata i 9.3 siger:

Men det er ikke helt klart (i det mindste for mig) fra netop den sætning, hvorfor du ikke kan se public .

I et postlisteindlæg har Tom Lane en forklaring på, hvordan man går lidt længere:
Se http://www.postgresql.org/message-id/[email protected]

Hans konklusion:

som ligner problemet i dette spørgsmål.

Nederste linje:brug pg_namespace i stedet for information_schema.schemata

Dette blev ændret i version 9.4 for at svare til, hvad brugerne forventer. Det aktuelle dokument siger:

USAGE privilegium på et skema er nu nok til at få det fra denne visning.



  1. Hvornår returneres forbindelser til forbindelsespuljen med Spring JPA (Hibernate) Entity Manager?

  2. Valgfri INSERT-sætning i transaktionskæden ved hjælp af NodeJS og Postgres

  3. Undgå knee-Jerk Performance fejlfinding

  4. Kan ikke finde PostgreSQL-klientbiblioteket (libpq)