Risposte:
Quando si utilizza la psql
riga di comando, è possibile elencare tutti gli schemi con comando \dn
.
\dn
elenca, a differenza delle tabelle che \dt
elenca?
\dt
elenca le tabelle per lo schema pubblico. Per mostrare le tabelle di tutti gli schemi utilizzare \dt *.*
e per un particolare schema utilizzare \dt schema_name.*
.
Connettiti al comando psql -> psql --u {userName} {DBName} quindi puoi digitare il comando seguente per verificare quanti schemi sono presenti nel DB
DBName=# \dn
Altrimenti puoi controllare facilmente la sintassi con i passaggi seguenti-
Dopo aver collegato il DB, premere
DBName=# help
Otterrai le seguenti opzioni:
Stai usando psql, l'interfaccia della riga di comando di PostgreSQL.
Digitare: \ copyright per i termini di distribuzione
\ h per assistenza con i comandi SQL
\? per aiuto con i comandi psql
\ g o termina con punto e virgola per eseguire la query
\ q per uscire
Quindi premere
DBName=# \?
Otterrai tutte le opzioni molto facilmente.
A partire da Postgres 9.3, Un trucco che puoi usare in Postgres per ottenere l'esatto sql di comando informativo (come \ d, \ du, \ dp, ecc.) In psql è usare una transazione. Ecco come va il trucco. Apri una sessione postgres, quindi digita il tuo comando:
begin;
\dn+
Mentre la transazione è ancora in esecuzione, apri un'altra sessione di postgres ed esegui una query su pg_stat_activity per ottenere esattamente 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;
\set ECHO_HIDDEN on
psql -E