PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Ist es möglich, globale Variablen in Postgresql zu definieren?

Aufbauend auf der Antwort von @klin gibt es mehrere Möglichkeiten, einen Konfigurationsparameter über die aktuelle Sitzung hinaus beizubehalten. Beachten Sie, dass diese Superuser-Privilegien erfordern.

So legen Sie einen Wert für alle Verbindungen zu einer bestimmten Datenbank fest:

ALTER DATABASE db SET abc.xyz = 1;

Sie können auch einen serverweiten Wert mit ALTER SYSTEM festlegen Befehl, hinzugefügt in 9.4. Es scheint nur für benutzerdefinierte Parameter zu funktionieren, wenn sie bereits SET wurden in Ihrer aktuellen Sitzung. Beachten Sie auch, dass dies ein Neuladen der Konfiguration erfordert, um wirksam zu werden.

SET abc.xyz = 1;
ALTER SYSTEM SET abc.xyz = 1;
SELECT pg_reload_conf();

Vor Version 9.4 können Sie dasselbe erreichen, indem Sie den Parameter zur postgresql.conf Ihres Servers hinzufügen Datei. In 9.1 und früher müssen Sie auch eine benutzerdefinierte Variablenklasse registrieren.