Was ist das Äquivalent zu show tables
(von MySQL) in PostgreSQL?
@StephenCorwin Nein, \l
ist das Äquivalent zu show databases
in MySQL. dt
show tables
und l
show databases
Was ist das Äquivalent zu show tables
(von MySQL) in PostgreSQL?
Von der psql
Befehlszeilenschnittstelle,
Wählen Sie zunächst Ihre Datenbank
\c database_name
Dann werden alle Tabellen im aktuellen Schema angezeigt:
\dt
Programmatisch (oder über die psql
Schnittstelle natürlich auch):
SELECT * FROM pg_catalog.pg_tables;
Die Systemtabellen befinden sich in der pg_catalog
Datenbank.
@StephenCorwin Nein, \l
ist das Äquivalent zu show databases
in MySQL. dt
show tables
und l
show databases
\dt
ist sehr nützlich. Das pg_catalog.pg_tables
ist viel weniger gut, da es scheint, interne Tabellen mit den vom Benutzer erstellten Tabellen für die Datenbank, mit der Sie gerade verbunden sind, zusammenzulegen.
psql my_db_name
sollten der Reihe nach ausgeführt werden \dt
zur Arbeit. Als ich lief psql
ohne einen Datenbanknamen erhielt ich die Meldung "Keine Beziehungen gefunden".
Melden Sie sich als Superuser an:
sudo -u postgres psql
Sie können alle Datenbanken und Benutzer auflisten nach \l
(Liste anderer Befehle nach \?
).
Wenn Sie nun andere Datenbanken sehen möchten, können Sie den Benutzer/die Datenbank ändern, indem Sie \c
Befehl wie \c template1
, \c postgres postgres
und verwenden \d
, \dt
o \dS
um Tabellen/Ansichten/etc. zu sehen.
Sie können das interaktive Terminal Psql von PostgreSQL verwenden, um Tabellen in PostgreSQL anzuzeigen.
1. Psql starten
Normalerweise können Sie den folgenden Befehl ausführen, um psql aufzurufen:
psql DBNAME USERNAME
Zum Beispiel, psql template1 postgres
Eine Situation, die Sie haben könnten, ist: Angenommen, Sie melden sich als Root an und wissen den Namen der Datenbank nicht mehr. Sie können ihn einfach zuerst in Psql eingeben, indem Sie ihn ausführen:
sudo -u postgres psql
Auf einigen Systemen ist der sudo-Befehl nicht verfügbar, Sie können stattdessen einen der beiden folgenden Befehle ausführen:
psql -U postgres
psql --username=postgres
2. Tabellen anzeigen
In Psql könnten Sie nun Befehle wie den folgenden ausführen:
\?
alle Befehle auflisten\l
Listendatenbanken\conninfo
Informationen über die aktuelle Verbindung anzeigen\c [DBNAME]
Verbindung zu einer neuen Datenbank, z.B., \c template1
\dt
Tabellen des öffentlichen Schemas auflisten\dt <schema-name>.*
Tabellen eines bestimmten Schemas auflisten, z. B., \dt public.*
\dt *.*
Tabellen aller Schemata auflistenSELECT * FROM my_table;
(Hinweis: Eine Anweisung muss mit einem Semikolon abgeschlossen werden ;
)\q
psql beenden(Der Vollständigkeit halber)
Sie könnten auch die (SQL-Standard-) Informationsschema :
SELECT
table_schema || '.' || table_name
FROM
information_schema.tables
WHERE
table_type = 'BASE TABLE'
AND
table_schema NOT IN ('pg_catalog', 'information_schema');
+1 Obwohl mysql show tables der Vollständigkeit halber nur das aktuelle Schema anzeigt, ist es gut, es so zu sehen, dass mysql nur eine Datenbank, aber mehrere Schemata hat, während postgresql mehrere Datenbanken (Kataloge) und Schemata haben kann. Die Entsprechung sollte also table_schema='DB_NAME' sein;
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Ver dba.stackexchange.com/a/1288/90651