Antworten:
Wenn Sie die psql
Befehlszeile verwenden, können Sie das gesamte Schema mit dem Befehl auflisten \dn
.
\dn
auflisten, im Gegensatz zu Tabellen, die \dt
auflisten?
\dt
listet Tabellen für das öffentliche Schema auf. Um Tabellen aller Schemata anzuzeigen, verwenden Sie \dt *.*
und für ein bestimmtes Schema \dt schema_name.*
.
Stellen Sie eine Verbindung zum Befehl psql her -> psql --u {userName} {DBName}, und geben Sie den folgenden Befehl ein, um zu überprüfen, wie viele Schemas in der Datenbank vorhanden sind
DBName=# \dn
Andernfalls können Sie die Syntax anhand der folgenden Schritte leicht überprüfen:
Drücken Sie nach dem Anschließen der DB
DBName=# help
Sie erhalten die folgenden Optionen:
Sie verwenden psql, die Befehlszeilenschnittstelle zu PostgreSQL.
Geben Sie Folgendes ein: \ copyright for distribution terms
\ h, um Hilfe bei SQL-Befehlen zu erhalten
\? Für Hilfe bei psql-Befehlen
\ g oder mit Semikolon beenden, um die Abfrage auszuführen
\ q zum Beenden
Dann drücken
DBName=# \?
Sie erhalten alle Optionen sehr einfach.
Ab postgres 9.3 können Sie in postgres einen Trick anwenden, um den genauen SQL-Wert des Informationsbefehls (z. B. \ d, \ du, \ dp usw.) in psql mithilfe einer Transaktion abzurufen. Hier ist, wie der Trick geht. Öffnen Sie eine Postgres-Sitzung und geben Sie Ihren Befehl ein:
begin;
\dn+
Öffnen Sie während der Ausführung der Transaktion eine weitere postgres-Sitzung, und fragen Sie pg_stat_activity ab. Sie können dann die genaue SQL abrufen.
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