Ich habe eine Tabelle in postgreSQL erstellt. Ich möchte mir die SQL-Anweisung ansehen, mit der die Tabelle erstellt wurde, kann sie aber nicht herausfinden.
Wie erhalte ich die create table
SQL-Anweisung für eine vorhandene Tabelle in Postgres über die Befehlszeile oder die SQL-Anweisung?
postgresql
Raja
quelle
quelle
pg_dump mydb -t mytable --schema-only
.aschema
durch den tatsächlichen Schemanamen der Tabelle, die Sie sichern möchten. Ersetzen Sieatable
durch den tatsächlichen Tabellennamen der Tabelle, die Sie sichern möchten.pg_dump mydb -t '"TableName"' --schema-only
- Andernfalls erkennt pg_dump den Tabellennamen nicht.Meine Lösung besteht darin, sich mit psql mit der Option -E wie folgt bei der postgres-Datenbank anzumelden:
Führen Sie in psql die folgenden Befehle aus, um die SQL anzuzeigen, die postgres zum Generieren
der Beschreibungstabellenanweisung verwendet:
Basierend auf dem SQL, das nach dem Ausführen dieser Beschreibungsbefehle ausgegeben wurde, konnte ich
die folgende plpgsql-Funktion zusammenstellen:
Hier ist die Funktionsnutzung:
Und hier ist die drop-Anweisung, wenn diese Funktion nicht dauerhaft bestehen bleiben soll:
quelle
NULL
für mich zurück ... Und wie wird das Schema behandelt? Sollte es CREATE-Anweisungen für Tabellen mit dem angegebenen Namen aus allen Schemas zurückgeben?Generieren Sie die Anweisung create table für eine Tabelle in postgresql über die Linux-Befehlszeile:
Diese Anweisung gibt die Tabelle create sql Anweisung für mich aus:
Erläuterung:
Mit pg_dump können wir Informationen über die Datenbank selbst abrufen.
-U
steht für Benutzername. Mein pgadmin-Benutzer hat kein Passwort festgelegt, daher muss ich kein Passwort eingeben. Die-t
Option bedeutet, für eine Tabelle anzugeben.--schema-only
bedeutet, dass nur Daten über die Tabelle und nicht die Daten in der Tabelle gedruckt werden. Hier ist der genaue Befehl, den ich benutze:quelle
Wenn Sie die create-Anweisung für eine Tabelle ohne Verwendung von pg_dump suchen möchten, funktioniert diese Abfrage möglicherweise für Sie (ändern Sie den Tabellennamen mit dem Namen Ihrer Tabelle):
Wenn es direkt von psql aufgerufen wird, ist es nützlich, Folgendes zu tun:
Auch die Funktion generate_create_table_statement in diesem Thread funktioniert sehr gut.
quelle
pg_dump
.Dean Toader Einfach exzellent! Ich würde Ihren Code ein wenig ändern, um alle Einschränkungen in der Tabelle anzuzeigen und die Verwendung der Regexp-Maske im Tabellennamen zu ermöglichen.
Jetzt können Sie beispielsweise die folgende Abfrage durchführen
was zu folgenden Ergebnissen führt:
für jede Benutzertabelle.
quelle
Die einfachste Methode, die ich mir vorstellen kann, besteht darin, pgAdmin 3 ( hier zu finden ) zu installieren und damit Ihre Datenbank anzuzeigen. Es wird automatisch eine Abfrage generiert, die die betreffende Tabelle erstellt.
quelle
Wenn Sie dies für verschiedene Tabellen gleichzeitig tun möchten, müssen Sie den Schalter -t mehrmals verwenden (ich habe eine Weile gebraucht, um herauszufinden, warum die durch Kommas getrennte Liste nicht funktioniert hat). Kann auch nützlich sein, um Ergebnisse an eine Outfile oder Pipe an einen Postgres-Server auf einem anderen Computer zu senden
quelle
Noch mehr Modifikationen basierend auf der Antwort von @vkkeeper. Möglichkeit hinzugefügt, Tabelle aus dem spezifischen Schema abzufragen.
quelle
Hier ist ein bisschen verbesserte Version von shekwi ‚s Abfrage .
Es generiert die Primärschlüsseleinschränkung und kann temporäre Tabellen verarbeiten:
Verwenden Sie den
table_name
Parameter, um den Namen der Tabelle anzugeben.quelle
quelle
Dies ist die Variante, die für mich funktioniert:
pg_dump -U user_viktor -h localhost unit_test_database -t floorplanpreferences_table --schema-only
Wenn Sie Schemas verwenden, müssen Sie natürlich auch Folgendes angeben:
pg_dump -U user_viktor -h localhost unit_test_database -t "949766e0-e81e-11e3-b325-1cc1de32fcb6".floorplanpreferences_table --schema-only
Sie erhalten eine Ausgabe, mit der Sie die Tabelle erneut erstellen können. Führen Sie diese Ausgabe einfach in psql aus.
quelle
Eine einfache Lösung in reinem SQL. Wenn Sie auf die Idee kommen, können Sie sie auf weitere Attribute erweitern, die Sie anzeigen möchten.
Ausgabe:
quelle
Hier ist eine einzelne Anweisung, die die DDL für eine einzelne Tabelle in einem angegebenen Schema einschließlich Einschränkungen generiert.
quelle
Klicken Sie in der pgadminIII-Datenbank >> Schemata >> Tabellen >> mit der rechten Maustaste auf 'Ihre Tabelle' >> Skripte >> 'Wählen Sie eine aus (Erstellen, Einfügen, Aktualisieren, Löschen ..)'
quelle
Hier ist eine Abfrage mit einigen Änderungen,
quelle