Ich versuche, die PostgreSQL-Administration zu erlernen, und habe begonnen, den Umgang mit dem psql
Befehlszeilentool zu erlernen .
psql --username=postgres
Wie liste ich alle Datenbanken und Tabellen auf, wenn ich mich mit anmelde?
Ich habe versucht \d
, d
und dS+
doch nichts aufgeführt ist . Ich habe mit pgAdmin III zwei Datenbanken und einige Tabellen erstellt, daher weiß ich, dass sie aufgelistet werden sollten.
postgresql
tools
psql
command-line
Jonas
quelle
quelle
psql -l
psql --username=postgres -l
.Antworten:
Bitte beachten Sie folgende Befehle:
\list
oder\l
: Alle Datenbanken auflisten\dt
: listet alle Tabellen in der aktuellen Datenbank aufSie werden nie Tabellen in anderen Datenbanken sehen, diese Tabellen sind nicht sichtbar. Sie müssen eine Verbindung zur richtigen Datenbank herstellen, um deren Tabellen (und andere Objekte) anzuzeigen.
So wechseln Sie zwischen Datenbanken:
\connect database_name
oder\c database_name
Siehe das Handbuch zu psql .
quelle
\c db_name
eine Verbindung zu einer bestimmten Datenbank herstellen.\dt
scheint nicht alle Tabellen in der aktuellen Datenbank aufzulisten (es scheint diejenigen auszuschließen, diesearch_path
in mindestens 9.2 nicht gefunden wurden )\dt *.
listet alle Tabellen in allen Schemata auf, ohne den Suchpfad ändern zu müssen.psql -U username -l
auflisten, aber es funktioniert nicht mit der Slash-Version.Dies listet Datenbanken auf:
Hier werden die Tabellen in der aktuellen Datenbank aufgelistet
quelle
WHERE table_schema = 'public'
weil ich nur benutzerdefinierte Tabellen löschen möchte.In Postgresql listen diese Terminalbefehle die verfügbaren Datenbanken auf
Oder der Befehl lautet einfacher:
Diese Befehle geben dies auf dem Terminal aus:
Dies sind die verfügbaren Datenbanken.
In PSQL listen diese Befehle die verfügbaren Tabellen auf
Sie müssen eine Datenbank angeben, bevor Sie die Tabellen in dieser Datenbank auflisten können.
Dies bringt Sie zu einem psql-Terminal:
Verwenden Sie den Befehl
\d
, um alle Tabellen, Ansichten und Sequenzen anzuzeigenDies druckt:
Geben Sie zum Verlassen des psql-Terminals Folgendes ein
\q
und drücken Sie die Eingabetaste. OderCtrl-D
macht das Gleiche. Dies sind die Tabellen in dieser Datenbank.quelle
\d[S+] list tables, views, and sequences
\l
ist auch eine Abkürzung für\list
. Es gibt eine ganze Reihe von Slash-Befehlen, die Sie mit psql auflisten können\?
.quelle
Um weitere Informationen zur Datenbank- und Tabellenliste zu erhalten, haben Sie folgende Möglichkeiten:
\l+
um Datenbanken aufzulistenund
\d+
um alle Tabellen im aktuellen Suchpfadschema in der aktuellen Datenbank aufzulisten.quelle
Von pg_Admin aus können Sie einfach Folgendes in Ihrer aktuellen Datenbank ausführen und es werden alle Tabellen für das angegebene Schema abgerufen:
Auf diese Weise erhalten Sie eine Liste aller permanenten Tabellen (im Allgemeinen der Tabellen, nach denen Sie suchen). Sie können nur die Tabellennamen abrufen, wenn Sie den
*
Platzhalter in "Nur" änderntable_name
. Die Öffentlichkeittable_schema
ist das Standardschema für die meisten Datenbanken, es sei denn, Ihr Administrator hat ein neues Schema eingerichtet.quelle
Möglicherweise haben Sie die Tabellen in ein Schema eingefügt, das sich nicht in Ihrem Suchpfad befindet, oder in das Standardschema public, sodass die Tabellen nicht mit \ dt angezeigt werden. Wenn Sie ein Schema mit dem Namen "data" verwenden, können Sie dies beheben, indem Sie Folgendes ausführen:
alter database <databasename> set search_path=data, public;
Beenden Sie psql und geben Sie es erneut ein. \ Dt zeigt Ihnen auch die Tabellen in den Schemadaten an.
quelle
set search_path=data, public;
würde auch den Trick tun :)