Antworten:
Wenn Sie die psqlBefehlszeile verwenden, können Sie das gesamte Schema mit dem Befehl auflisten \dn.
\dnauflisten, im Gegensatz zu Tabellen, die \dtauflisten?
\dtlistet 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=# helpSie 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