Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

SET

Изменяет значение параметра конфигурации Greengage DB.

Синтаксис

SET [SESSION | LOCAL] <configuration_parameter> { TO | = } {<value> | '<value>' | DEFAULT}

SET [SESSION | LOCAL] TIME ZONE {<timezone> | LOCAL | DEFAULT}

Описание

Команда SET изменяет параметры конфигурации сервера. Любой параметр конфигурации, классифицируемый как параметр сессии, может быть изменен "на лету" с помощью команды SET. SET влияет только на значение в рамках текущей сессии.

Если команда SET или SET SESSION выполняется внутри транзакции, которая затем отменяется, то действие команды SET прекращается при откате транзакции. Если же окружающая транзакция фиксируется, действие SET сохраняется до конца сессии, если только его не переопределит другая команда SET.

Действие команды SET LOCAL продолжается только до конца текущей транзакции, независимо от того, была она зафиксирована или нет. Особый случай — использование SET с последующей командой SET LOCAL в одной транзакции: значение SET LOCAL будет сохраняться до конца транзакции, но после этого (если транзакция фиксируется) восстановится значение, установленное командой SET.

Если команда SET LOCAL используется внутри функции, которая включает SET для того же параметра конфигурации (см. CREATE FUNCTION), то действие команды SET LOCAL прекращается при завершении работы функции; значение, действовавшее на момент вызова функции, в любом случае восстанавливается. Это позволяет использовать SET LOCAL для динамических или повторяющихся изменений параметра внутри функции, сохраняя при этом удобство использования параметра SET для сохранения и восстановления значения, полученного извне. Обратите внимание, что обычная команда SET переопределяет любой параметр SET окружающей функции; ее действие сохраняется, если не происходит откат транзакции.

При создании курсора с помощью команды DECLARE в транзакции, нельзя использовать команду SET в транзакции, пока курсор не закрыт с помощью команды CLOSE.

За информацией о параметрах сервера обратитесь к статье Настройка СУБД с помощью GUC.

Параметры

Параметр Описание

SESSION

Указывает, что команда действует в рамках текущей сессии. Это поведение по умолчанию

LOCAL

Указывает, что команда действует только в рамках текущей транзакции. После COMMIT или ROLLBACK в силу вновь вступает значение, определенное на уровне сессии. Обратите внимание, что команда SET LOCAL не будет иметь никакого эффекта, если она выполняется вне транзакции

configuration_parameter

Название параметра конфигурации Greengage DB. С помощью SET можно изменять только параметры, классифицированные как session (подробнее в статье Настройка СУБД с помощью GUC)

value

Новое значение параметра. Значения могут быть указаны в виде строковых констант, идентификаторов, чисел или списков перечисленных через запятую элементов. DEFAULT можно использовать для сброса значения параметра до значения по умолчанию. При указании размера памяти или единиц времени значение следует заключить в одинарные кавычки

TIME ZONE

SET TIME ZONE является альтернативным написанием SET timezone TO <value>. Синтаксис SET TIME ZONE позволяет указывать часовой пояс в специальном формате. Например, допускаются следующие значения:

  • 'PST8PDT'

  • 'Europe/Rome'

  • -7 (часовой пояс на 7 часов западнее UTC)

  • INTERVAL '-08:00' HOUR TO MINUTE (часовой пояс на 8 часов западнее UTC)

  • LOCAL или DEFAULT (устанавливает в качестве часового пояса местный часовой пояс — то есть часовой пояс по умолчанию, установленный на сервере)

Дополнительную информацию о часовых поясах в Greengage DB можно получить в разделе Time Zones документации PostgreSQL

Примеры

Установка пути поиска схем:

SET search_path TO my_schema, public;

Увеличение объема памяти сегмент-хоста, выделяемой на каждый запрос, до 200 МБ:

SET statement_mem TO '200MB';

Установка традиционного стиля даты PostgreSQL с форматом ввода "день перед месяцем":

SET datestyle TO postgres, dmy;

Установка часового пояса Сан-Матео, штат Калифорния (тихоокеанское время):

SET TIME ZONE 'PST8PDT';

Установка часового пояса Италии:

SET TIME ZONE 'Europe/Rome';

Совместимость

SET TIME ZONE расширяет синтаксис, определенный в стандарте SQL. Стандарт допускает только числовые смещения часовых поясов, в то время как Greengage DB допускает указывать часовые пояса более гибко. Все другие функции SET являются расширениями Greengage DB.

См. также