Gibt es eine Abfrage, um alle Tabellen in meiner Postgres-Datenbank aufzulisten?
Ich habe eine Abfrage ausprobiert wie:
SELECT table_name FROM information_schema.tables
WHERE table_schema='public'
Diese Abfrage gibt jedoch auch Ansichten zurück.
Wie kann ich nur Tabellennamen erhalten, keine Ansichten?
postgresql
postgresql-9.2
jobi88
quelle
quelle
Wenn Sie eine Liste der Datenbank möchten
Wenn Sie eine Liste der Tabellen aus der aktuellen pg-Installation aller Datenbanken wünschen
quelle
Öffnen Sie das Postgres-Terminal mit der gewünschten Datenbank:
Führen Sie diesen Befehl dann in der Postgres-Umgebung aus
Dies beschreibt alle Tabellen nach Namen. Grundsätzlich eine Liste von Tabellen nach Namen aufsteigend.
Dann können Sie versuchen, eine Tabelle durch Felder zu beschreiben:
Hoffe das hilft.
quelle
\d
Option, um nur alle Tabellen aufzulisten, ohne Index, ohne Sequenz, ...?\dt
es dafür nicht?Versuche dies:
Dieser funktioniert!
quelle
table_type='BASE TABLE'
. Vielleicht irre ich mich, könnten Sie bitte näher darauf eingehen?quelle
pg_stat_user_tables
wird möglicherweise nicht ausgefüllt, wenntrack_activities
deaktiviert ist. Die Verwendung der "offiziellen" API wiepg_tables
oderinformation_schema.table
ist eine viel bessere Wahl.Wie wäre es einfach
\dt
nachgebenpsql
? Siehe https://www.postgresql.org/docs/current/static/app-psql.html .quelle
Für MySQL benötigen Sie table_schema = 'dbName' und für MSSQL entfernen Sie diese Bedingung.
Beachten Sie, dass "nur die Tabellen und Ansichten angezeigt werden, auf die der aktuelle Benutzer Zugriff hat". Wenn Sie Zugriff auf viele Datenbanken haben und das Ergebnis auf eine bestimmte Datenbank beschränken möchten, können Sie dies erreichen, indem Sie die Bedingung AND table_catalog = 'yourDatabase' (in PostgreSQL) hinzufügen.
Wenn Sie auch die Kopfzeile mit den Zeilennamen und die Fußzeile mit der Zeilenanzahl entfernen möchten, können Sie psql entweder mit der Befehlszeilenoption -t (kurz für --tuples-only) starten oder die Einstellung in psql umschalten Befehlszeile von \ t (kurz für \ pset tuples_only). Dies kann beispielsweise nützlich sein, wenn die Ausgabe mit \ g [| Befehl] an einen anderen Befehl weitergeleitet wird.
quelle