Как мне установить и получить пользовательские переменные базы данных?


9

С помощью PGAdmin IIIя могу щелкнуть правой кнопкой мыши базу данных, перейти на Variablesвкладку и поместить свойство переменной name-value в саму базу данных. Есть ли способ настроить их? Я видел application_nameпеременную, но я хотел бы иметь application_versionпеременную.

Ответы:


8

Вы должны добавить переменную в конце вашего postgresql.confлайка

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

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

general.application_version = 'v1.0'

При перезапуске вы можете добавить general.application_versionвручную в PgAdmin (он не будет отображаться в раскрывающемся списке - по крайней мере, не для меня). В противном случае вы можете использовать его как любую другую переменную PostgreSQL.

Обновление до версии 9.2 и новее

Начиная с PostgreSQL 9.2, нам больше не нужно настраивать custom_variable_classes. Можно установить любую переменную по своему усмотрению - единственное ограничение, по-видимому, состоит из двух частей:

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

SET thing.something TO 'bla';
SET

Я думаю, это так, чтобы избежать столкновения со встроенными параметрами.


Хммм. Нет способа сделать это из SQL-запроса в базе данных?
Джереми Холовач

Сначала вы должны определить переменные в postgresql.conf. AFAIK это требует перезапуска PostgreSQL, так что вы не можете сделать это из SQL.
Дезсо

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.