Gibt es ein MySQL-Äquivalent SHOW CREATE TABLE
in postgres? Ist das möglich? Wenn nicht, welche ist die nächstbeste Lösung?
Ich benötige die Anweisung, weil ich sie zum Erstellen der Tabelle auf einem Remoteserver (über WCF) verwende.
mysql
postgresql
sql
vlebar
quelle
quelle
Antworten:
Sie können versuchen, in der PostgreSQL-Protokolldatei zu verfolgen, was "pg_dump -t table -s" wirklich tut. Dann können Sie mit derselben Methode Ihre eigene SQL-Funktion schreiben.
quelle
-E
Option zu verfolgen , was im Hintergrund vor sich geht , wenn Sie einen ausführenpsql
Befehl --E: will describe the underlaying queries of the \ commands (cool for learning!)
- HTH!pg_dump:
oder benutze die PostgreSQL GUI Tools (pgAdmin, phpPgAdmin usw.)
quelle
--schema-only
hat genau diesen Zweck: Zeigen Sie die SQL-Anweisungen an, um das Schema / die Tabelle zu erstellen. Sie können diese Ausgabe dann irgendwie in Ihr C # -Programm einspeisen..tar
Speicherauszugrestore.sql
erstellen möchten , greifen Sie auf die Datei aus dem Archiv zu. Es hat alle create-Anweisungen.In command line (
psql
) können Sie Folgendes ausführen:\d <table name>
um alle Spalten, ihre Typen und Indizes aufzulisten.quelle
Aufbauend auf dem ersten Teil der Antwort von @ CubicalSoft können Sie die folgende Funktion einfügen, die für einfache Tabellen funktionieren soll (nimmt das Standardschema 'public' an und lässt Einschränkungen, Indizes und benutzerdefinierte Datentypen usw. usw. weg). Die @ RJS-Antwort ist im Moment die einzige Möglichkeit, dies richtig zu tun. das ist etwas, das in psql eingebaut werden sollte!
quelle
Mir ist klar, dass ich ein bisschen zu spät zu dieser Party komme, aber dies war das erste Ergebnis meiner Google-Suche, also dachte ich, ich würde mit dem antworten, was ich mir ausgedacht habe.
Sie können mit dieser Abfrage ziemlich weit zu einer Lösung kommen, um die Spalten zu erhalten:
Und dann diese Abfrage für die meisten gängigen Indizes:
Dann müssen die Abfragezeichenfolgen im richtigen Format erstellt werden.
quelle
Wie in https://serverfault.com/a/875414/333439 beantwortet , ist es mit dem
\d <table>
Meta-Befehl inpsql
möglich, die Tabellenstruktur in der Datenbank anzuzeigen. Wenn Sie die im Meta-Befehl verwendete Abfrage anzeigen möchten, können Sie den Befehl verwendenpsql -E
. Wie in der Manpage beschrieben, gibt der-E
Switch die\d
Metabefehlsabfragen wieder. Sie können also startenpsql -E
, die Tabellenstruktur mit dem\d <table>
Metabefehl anzeigen und je nach-E
Schalter die Abfrage anzeigen, die zur Beschreibung der Tabellenstruktur generiert wurdequelle
In pgAdmin 4 finden Sie einfach die Tabelle im Baum auf der linken Seite, zB:
Wenn die Tabelle ausgewählt ist, öffnen Sie die SQL-Registerkarte auf der rechten Seite. Es zeigt die
CREATE TABLE
für die ausgewählte Tabelle.quelle
Die Postgres-Erweiterung ddlx ( https://github.com/lacanoid/pgddl ) leistet genau dies und mehr.
quelle