Wie setze und erhalte ich benutzerdefinierte Datenbankvariablen?


9

Mit PGAdmin IIIIch kann mit der rechten Maustaste auf eine Datenbank klicken, zur VariablesRegisterkarte navigieren und eine Variable Name-Wert-Eigenschaft in die Datenbank selbst einfügen. Gibt es eine Möglichkeit, diese anzupassen? Ich habe eine application_nameVariable gesehen, möchte aber eine application_versionVariable haben.

Antworten:


8

Sie müssen die Variable am Ende Ihres postgresql.confLike hinzufügen

#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

custom_variable_classes = 'general'     # list of custom variable class names

general.application_version = 'v1.0'

Nach dem Neustart können Sie general.application_versionmanuell in PgAdmin hinzufügen (es wird nicht in der Dropdown-Liste angezeigt - zumindest nicht für mich). Andernfalls können Sie es wie jede andere PostgreSQL-Variable verwenden.

Update für Version 9.2 und neuer

Ab PostgreSQL 9.2 müssen wir keine Einstellungen custom_variable_classesmehr vornehmen. Man kann jede gewünschte Variable einstellen - die einzige Einschränkung scheint zu sein, dass sie immer noch zwei Teile haben muss:

SET something TO 'bla';
ERROR:  unrecognized configuration parameter "something"

SET thing.something TO 'bla';
SET

Ich denke, dies ist so, um eine Kollision mit den eingebauten Parametern zu vermeiden.


Hmmm. Keine Möglichkeit, dies über eine SQL-Abfrage in der Datenbank zu tun?
Jeremy Holovacs

Sie müssen zuerst die Variablen in postgresql.conf definieren. AFAIK Dies erfordert einen Neustart von PostgreSQL, daher können Sie dies nicht über SQL tun.
Dekso

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.