sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur kontrollerar jag om det offentliga PostgreSQL-schemat finns?

Informationen från information_schema.schemata beror på vilken roll du är kopplad till, så det är inte riktigt rätt synsätt att fråga för att upptäcka scheman i allmänhet.

dokumentet på information_schema.schemata i 9.3 säger:

Men det är inte helt klart (åtminstone för mig) från just den meningen varför du inte kan se public .

I ett inlägg på e-postlistan har Tom Lane en förklaring som går lite längre:
Se http://www.postgresql.org/message-id/[email protected]

Hans slutsats:

som ser exakt ut som problemet i den här frågan.

Nedersta raden:använd pg_namespace istället för information_schema.schemata

Detta ändrades i version 9.4 för att överensstämma med vad användarna förväntar sig. Det aktuella dokumentet säger:

USAGE privilegium på ett schema är nu tillräckligt för att få det från den här vyn.



  1. Komplexa databasfrågor i yii2 med Active Record

  2. Hur man får databasstruktur i MySQL via query

  3. Entity Framework Code-Först för långsam vid start

  4. Visar data i en RecyclerView