Ich habe eine Postgres-Datenbank mit mehreren Schemata. Wenn ich von einer Shell mit eine Verbindung zur Datenbank herstelle psql
und diese ausführe \dt
, wird das Standardverbindungsschema verwendet, das öffentlich ist . Gibt es ein Flag, das ich angeben kann, oder wie kann ich das Schema ändern?
postgresql
psql
mehany
quelle
quelle
Antworten:
In PostgreSQL bestimmt das System, welche Tabelle gemeint ist, indem es einem Suchpfad folgt, der eine Liste der zu durchsuchenden Schemas darstellt.
Die erste übereinstimmende Tabelle im Suchpfad wird als die gewünschte angesehen. Andernfalls wird ein Fehler ausgelöst, wenn keine Übereinstimmung vorliegt, selbst wenn übereinstimmende Tabellennamen in anderen Schemas in der Datenbank vorhanden sind.
Um den aktuellen Suchpfad anzuzeigen, können Sie den folgenden Befehl verwenden:
Und um das neue Schema in den Pfad einzufügen, können Sie Folgendes verwenden:
Oder wenn Sie mehrere Schemata möchten:
Referenz: https://www.postgresql.org/docs/current/static/ddl-schemas.html
quelle
Möchten Sie die Datenbank ändern?
Aktualisieren.
Ich habe deine Frage noch einmal gelesen. Schemata anzeigen
Um das Schema zu ändern, können Sie versuchen
quelle
quelle
Verwenden Sie den Schemanamen mit dem Punkt im Befehl psql, um Informationen zu diesem Schema zu erhalten.
Konfiguration:
Liste der Beziehungen anzeigen in
test_schema
:Anzeigen
test_schema.test_table
Definition:Alle Tabellen anzeigen in
test_schema
:etc...
quelle
Das ist alt, aber ich habe Exporte in meinen Alias für die Verbindung zur Datenbank eingefügt:
Und für ein anderes Schema:
quelle
export
das Semikolon in Ihren Aliasnamen weglassen . Dieser WegPGOPTIONS
bleibt nicht bestehen, nachdem Sie psql verlassen haben.SET search_path
zu jeder einzelnen Abfrage. Danke!Stichwort :
Beispiel:
quelle
Eine schnelle Lösung könnte sein:
quelle
Wenn Sie mit psql im Docker spielen, führen Sie es folgendermaßen aus:
quelle