Wie führen Sie das Äquivalent von Oracle DESCRIBE TABLE
in PostgreSQL aus (mit dem Befehl psql)?
postgresql
psql
table-structure
Herr Bisamratte
quelle
quelle
+
ist wirklich Clutch, da PostgresSQL 9 nur die ausführliche Beschreibung für Ansichten gibt, wenn Sie dies tun\d+ table_name
, und nicht die einfache\d table_name
psql -E
ist praktisch, um die SQL zu erhalten, die implementiert\d+
und ähnliche (für die Verwendung außerhalb der psql-Eingabeaufforderung)Zusätzlich zum PostgreSQL-Weg (\ d 'etwas' oder \ dt 'Tabelle' oder \ ds 'Sequenz' und so weiter)
Der SQL-Standardweg, wie hier gezeigt :
Es wird von vielen DB-Engines unterstützt.
quelle
\d+
nicht. Dies ist die beste Antwort IMOWenn Sie es von der Abfrage anstelle von psql erhalten möchten, können Sie das Katalogschema abfragen. Hier ist eine komplexe Abfrage, die das tut:
Es ist ziemlich komplex, aber es zeigt Ihnen die Leistungsfähigkeit und Flexibilität des PostgreSQL-Systemkatalogs und sollte Sie auf den Weg zur pg_catalog-Meisterschaft bringen ;-). Stellen Sie sicher, dass Sie die% s in der Abfrage ändern. Das erste ist Schema und das zweite ist der Tabellenname.
quelle
format_type()
alle an den Typ angehängten Modifikatoren enthalten sind, znumeric(6,2)
. wohingegeninformation_schema.columns
nur der Basistyp vonnumeric
.Sie können dies mit einem psql-Schrägstrich tun:
Es funktioniert auch für andere Objekte:
Quelle: faqs.org
quelle
Das psql-Äquivalent von
DESCRIBE TABLE
ist\d table
.Weitere Informationen finden Sie im psql-Teil des PostgreSQL-Handbuchs.
quelle
\c databasename
eher alsuse databasename
(für diejenigen, die wie ich von MySQL kommen :-). Ohne\c databasename
zuerst\d tablename
produziertNo relations found.
Nachricht und nichts mehr.Dies sollte die Lösung sein:
quelle
Sie können ein
\d *search pattern *
Sternchen verwenden , um Tabellen zu finden, die dem Suchmuster entsprechen, an dem Sie interessiert sind.quelle
\d *"<SubString>"*
. Das heißt, die doppelten Anführungszeichen müssen sich innerhalb der Sternchen befinden. Wenn Sie nur die Liste der Tabellen wollen, dann wollen Sie verwenden\dt
Zusätzlich zu der
\d+ <table_name>
bereits gefundenen Befehlszeile können Sie auch das Informationsschema verwenden, um die Spaltendaten mithilfe von info_schema.columns nachzuschlagenquelle
FROM info_schema.columns
hat bei mir nicht funktioniert Ich musste verwendenfrom information_schema.columns
, nicht sicher, ob das ein Tippfehler in Ihrer Antwort oder ein Implementierungsproblem an meinem Ende ist.Verwenden Sie die folgende SQL-Anweisung
Wenn Sie tbl_name und col_name ersetzen, wird der Datentyp der jeweiligen Spalte angezeigt, nach der Sie suchen.
quelle
Sie können dies verwenden:
quelle
Diese Variante der Abfrage (wie in anderen Antworten erläutert) hat bei mir funktioniert.
Es wird hier ausführlich beschrieben: http://www.postgresqltutorial.com/postgresql-describe-table/
quelle
Beschreiben Sie in MySQL den Tabellennamen DESCRIBE
In PostgreSQL \ d Tabellenname
Oder Sie können diesen langen Befehl verwenden:
quelle
Hier ist eine überarbeitete Abfrage, um die SQL-Abfrage der anderen Antwort zu verbessern (was großartig ist!). Es enthält auch Einschränkungsnamen, Vererbungsinformationen und Datentypen, die in die Bestandteile (Typ, Länge, Genauigkeit, Skalierung) unterteilt sind. Es werden auch Spalten herausgefiltert, die gelöscht wurden (die noch in der Datenbank vorhanden sind).
quelle
Sie können dies auch mit der folgenden Abfrage überprüfen
Beispiel: Meine Tabelle hat 2 Spaltennamen und pwd. Screenshot unten geben.
* Verwenden von PG admin3
quelle
Der beste Weg, um eine Tabelle wie eine Spalte, einen Typ, Modifikatoren von Spalten usw. zu beschreiben.
quelle
quelle
quelle
1) PostgreSQL DESCRIBE TABLE mit psql
Im psql-Befehlszeilentool \ d Tabellenname oder \ d + Tabellenname , um die Informationen zu den Spalten einer Tabelle zu finden
2) PostgreSQL DESCRIBE TABLE mit information_schema
SELECT-Anweisung zum Abfragen der Spaltennamen, des Datentyps und der maximalen Zeichenlänge der Spaltentabelle in der Datenbank information_schema.
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH aus INFORMATION_SCHEMA.COLUMNS wobei table_name = 'tablename';
Weitere Informationen finden Sie unter https://www.postgresqltutorial.com/postgresql-describe-table/
quelle
/ dt ist der Befehl, der alle in einer Datenbank vorhandenen Tabellen auflistet. Mit dem
Befehl / d und / d + können wir die Details einer Tabelle abrufen. Die Systemsteuer lautet
* / d Tabellenname (oder) \ d + Tabellenname
quelle
Ich habe das folgende Skript für das Abrufen des Tabellenschemas ausgearbeitet.
quelle
||
scheint so etwas wie ein Verkettungsoperator zu sein (Strings zusammenfügen)