×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.172. SET

SET — изменение параметра времени выполнения

Синтаксис

SET [ SESSION | LOCAL ] configuration_parameter { TO | = } { значение | 'значение' | DEFAULT }
SET [ SESSION | LOCAL ] TIME ZONE { значение | 'значение' | LOCAL | DEFAULT }

Описание

Команда SET изменяет параметры конфигурации времени выполнения. Многие из параметров времени выполнения, перечисленных в Глава 3.4 могут быть изменены «на лету» с помощью SET. (Некоторые параметры могут быть изменены только суперпользователями и пользователями, которым были предоставлены SET права на этот параметр. Также существуют параметры, которые невозможно изменить после запуска сервера или сеанса.) SET влияет только на значение, используемое в текущем сеансе.

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

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

Эффект от SET или SET LOCAL также отменяются при откате к точке сохранения, предшествующей выполнению команды.

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

Примечание

В Digital Q.DataBase версиях с 8.0 по 8.2 результаты действия команды SET LOCAL отменялись при удалении более ранней точки сохранения или при успешном выходе из блока исключений PL/pgSQL exception block. Это поведение было изменено, так как оно было признано неочевидным.

Параметры

SESSION

Указывает, что команда вступает в силу для текущего сеанса. (Это значение по умолчанию, если не указано ни SESSION ни LOCAL отображается.)

LOCAL

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

configuration_parameter

Имя настраиваемого параметра времени выполнения. Доступные параметры задокументированы в Глава 3.4 и ниже.

значение

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

Помимо параметров конфигурации, описанных в Глава 3.4, существует несколько параметров, которые можно настроить только с помощью команды SET или которые имеют специальный синтаксис:

SCHEMA

SET SCHEMA 'value' является псевдонимом для SET search_path TO value. С использованием этого синтаксиса можно указать только одну схему.

NAMES

SET NAMES value является псевдонимом для SET client_encoding TO value.

SEED

Устанавливает внутреннее начальное значение для генератора случайных чисел ( функция random). Допустимые значения: числа с плавающей запятой от -1 до 1 включительно.

Начальное значение также можно задать с помощью функции setseed:

SELECT setseed(value);
TIME ZONE

SET TIME ZONE 'value' является псевдонимом для SET timezone TO 'value'. The Синтаксис SET TIME ZONE допускает использование специального синтаксиса для указания часового пояса. Ниже приведены примеры допустимых значений:

'America/Los_Angeles'

Часовой пояс для Беркли, Калифорния.

'Europe/Rome'

Часовой пояс для Италии.

-7

Часовой пояс на 7 часов западнее UTC (соответствует PDT). Положительные значения отсчитываются к востоку от UTC.

INTERVAL '-08:00' HOUR TO MINUTE

Часовой пояс на 8 часов к западу от UTC (соответствует PST).

LOCAL
DEFAULT

Установите часовой пояс в значение вашего локального часового пояса (то есть значение сервера по умолчанию для timezone).

Параметры часового пояса, указанные в виде чисел или интервалов, внутренне преобразуются в синтаксис часовых поясов POSIX. Например, после SET TIME ZONE -7, SHOW TIME ZONE будет выведено <-07>+07.

Аббревиатуры часовых поясов не поддерживаются SET; см. Раздел 2.5.5.3 для получения дополнительной информации о часовых поясах.

Примечания

Функция set_config предоставляет эквивалентную функциональность; см. Раздел 2.6.28.1. Кроме того, можно выполнить UPDATE для pg_settings системного представления, чтобы получить результат, эквивалентный SET.

Примеры

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

SET search_path TO my_schema, public;

Установка традиционного стиля даты POSTGRES с «порядком «день перед месяцем» для» соглашения о вводе:

SET datestyle TO postgres, dmy;

Установка часового пояса для Беркли, Калифорния:

SET TIME ZONE 'America/Los_Angeles';

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

SET TIME ZONE 'Europe/Rome';

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

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

См. также

RESET, SHOW
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению