Cum am lista toate schemele în PostgreSQL?

Atunci când se utilizează PostgreSQL v9.1, cum am lista toate schemele folosind SQL?

Mă așteptam la ceva de-a lungul liniilor de:

SELECT something FROM pg_blah;
Soluția

Pentru a lista toate schemele, utilizați (ANSI) standard INFORMATION_SCHEMA

select schema_name
from information_schema.schemata;

Mai multe detalii în manual

alternativ:

select nspname
from pg_catalog.pg_namespace;

Mai multe detalii despre pg_catalog din manual

Comentarii (0)

Atunci când se utilizează psql în linia de comandă, puteți lista toate schema cu comanda \dn.

Comentarii (4)

Conectați-vă la psql comanda --> psql-u {userName} {DBName}, atunci aveți posibilitatea să tastați comanda de mai jos pentru a verifica cât de multe scheme sunt prezente în DB

DBName=# \dn

Mai poți verifica sintaxa de mai jos pașii cu ușurință-

  1. După conectarea la DB, apăsați

DBName=# ajutor

Veți obține opțiunile de mai jos:

utilizați psql, linia de comandă interfață pentru PostgreSQL. Tip: \drepturile de autor pentru termeni de distribuție \h pentru ajutor cu SQL comenzi \? pentru a vă ajuta cu psql comenzi \g sau termina cu punct și virgulă pentru a executa interogarea \q

Apoi apăsați

DBName=# \?

Veți obține toate opțiunile foarte usor.

Comentarii (0)

Începutul Pe postgres 9.3, Un truc puteți utiliza în postgres pentru a obține exact sql informaționale de comandă (cum ar fi \d \du, \dp, etc) în psql este de a folosi o tranzacție. Aici's cum merge șmecheria. Deschide un postgres sesiune, apoi tastați comanda :

begin;
\dn+

În timp ce tranzacția încă rulează, deschideți un alt postgres sesiune, și interogare pg_stat_activity și puteți obține exact sql.

postgres=# select query from pg_stat_activity ;
                                 query                                 
-----------------------------------------------------------------------
 SELECT n.nspname AS "Name",                                          +
   pg_catalog.pg_get_userbyid(n.nspowner) AS "Owner",                 +
   pg_catalog.array_to_string(n.nspacl, E'\n') AS "Access privileges",+
   pg_catalog.obj_description(n.oid, 'pg_namespace') AS "Description" +
 FROM pg_catalog.pg_namespace n                                       +
 WHERE n.nspname !~ '^pg_' AND n.nspname  'information_schema'      +
 ORDER BY 1;
Comentarii (2)