Ich muss den Schemapfad in Postgres festlegen, damit ich nicht jedes Mal eine Schemapunkttabelle spezifiziere, z schema2.table
. Schemapfad festlegen:
SET SCHEMA PATH a,b,c
scheint nur für eine Abfragesitzung auf dem Mac zu funktionieren, nachdem ich das Abfragefenster geschlossen habe, setzt sich die Pfadvariable auf den Standard zurück.
Wie kann ich es dauerhaft machen?
sql
postgresql
Nakh
quelle
quelle
Antworten:
(Und wenn Sie keinen Administratorzugriff auf den Server haben)
Zwei wichtige Dinge, die Sie wissen sollten:
a, b, c
wichtig, da auch die Reihenfolge festgelegt wird, in der die Schemas nach Tabellen durchsucht werden. Wenn Sie also denselben Tabellennamen in mehr als einem Schema unter den Standardeinstellungen haben, gibt es keine Mehrdeutigkeit. Der Server verwendet immer die Tabelle aus dem ersten Schema, das Sie für Ihr Schema angegeben habensearch_path
.quelle
Sie können den Standard
search_path
auf Datenbankebene festlegen :Oder auf Benutzer- oder Rollenebene:
Wenn Sie in allen Ihren Datenbanken ein gemeinsames Standardschema haben, können Sie den systemweiten Standard in der Konfigurationsdatei mit der Option search_path festlegen .
Wenn eine Datenbank erstellt wird, wird sie standardmäßig aus einer versteckten "Vorlagendatenbank" mit dem Namen template1 erstellt . Sie können diese Datenbank ändern, um einen neuen Standardsuchpfad für alle zukünftig erstellten Datenbanken anzugeben. Sie können auch eine andere Vorlagendatenbank erstellen und
CREATE DATABASE <database_name> TEMPLATE <template_name>
zum Erstellen Ihrer Datenbanken verwenden.quelle
Josh hat recht, aber er hat eine Variante ausgelassen:
Legen Sie den Suchpfad für den Benutzer in einer bestimmten Datenbank fest.
quelle