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.