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.

Jeremy Holovacs
quelle

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.

dezso
quelle
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
8

Um die Antwort von @ dezso zu ergänzen, können diese Variablen mit geändert werden

SELECT set_config('class.name', 'value', valid_for_transaction_only::boolean)

und lesen mit

SELECT current_setting('class.name')

Weitere Informationen finden Sie unter diesem Link: http://www.postgresql.org/docs/9.3/static/functions-admin.html

Gergely Zsamboki
quelle