Перейти к основному содержимому
Перейти к основному содержимому

Оператор SET

SET param = value

Присваивает значение value параметру param настройки для текущей сессии. Нельзя изменять настройки сервера таким способом.

Также можно задать все значения из указанного SETTINGS PROFILE одним запросом.

SET profile = 'profile-name-from-the-settings-file'

Для булевых настроек со значением true можно использовать сокращённый синтаксис, опуская указание значения. Если задано только имя настройки, она автоматически устанавливается в 1 (true).

-- These are equivalent:
SET force_index_by_date = 1
SET force_index_by_date

SET TIME ZONE

SET TIME ZONE [=] 'timezone'

Устанавливает часовой пояс сеанса. Это псевдоним для SET session_timezone = 'timezone', предусмотренный для совместимости с PostgreSQL и другими SQL-базами данных.

Многие SQL-клиенты, ORM и JDBC-драйверы автоматически выполняют SET TIME ZONE при подключении. Этот синтаксис позволяет таким инструментам работать с ClickHouse без специальных обходных решений.

SET TIME ZONE 'UTC';
SET TIME ZONE 'Europe/Amsterdam';
SET TIME ZONE 'America/New_York';

-- Verify the current session time zone
SELECT getSetting('session_timezone');

Значение часового пояса должно быть допустимым именем из базы данных часовых поясов IANA. Недопустимое имя часового пояса приведет к ошибке.

Дополнительные сведения о настройке session_timezone см. в разделе session_timezone.

Настройка параметров запроса

Оператор SET также можно использовать для определения параметров запроса, добавляя к имени параметра префикс param_. Параметры запроса позволяют писать универсальные запросы с заполнителями, которые подставляются фактическими значениями во время выполнения запроса.

SET param_name = value

Чтобы использовать параметр запроса, обратитесь к нему, используя синтаксис {name: datatype}:

SET param_id = 42;
SET param_name = 'John';

SELECT * FROM users
WHERE id = {id: UInt32}
AND name = {name: String};

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

Для более подробной информации о параметрах запроса, включая использование с типом Identifier, см. раздел Определение и использование параметров запроса.

Дополнительную информацию см. в разделе Настройки.