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

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

6 голосов | спросил Jeremy Holovacs 7 FriEurope/Moscow2012-12-07T05:29:47+04:00Europe/Moscow12bEurope/MoscowFri, 07 Dec 2012 05:29:47 +0400 2012, 05:29:47

2 ответа


6

Вам нужно добавить переменную в конец вашего 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

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

ответил dezso 7 FriEurope/Moscow2012-12-07T10:08:25+04:00Europe/Moscow12bEurope/MoscowFri, 07 Dec 2012 10:08:25 +0400 2012, 10:08:25
6

Чтобы добавить к ответу @ dezso, эти переменные можно изменить с помощью

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

и читать с помощью

SELECT current_setting('class.name')

См. эту ссылку для получения дополнительной информации: http: //www.postgresql .org /документы /9.3 /статическая /функция-admin.html

ответил Gergely Zsamboki 17 J0000006Europe/Moscow 2014, 01:05:08

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132