Skip to main content
Изменяет данные, соответствующие указанному условию фильтрации. Реализовано как мутация.
Префикс ALTER TABLE отличает этот синтаксис от большинства других систем с поддержкой SQL. Он призван показать, что, в отличие от похожих запросов в OLTP-базах данных, это ресурсоёмкая операция, не предназначенная для частого использования.
filter_expr должен иметь тип UInt8. Этот запрос обновляет значения указанных столбцов значениями соответствующих выражений в строках, для которых filter_expr принимает ненулевое значение. Значения приводятся к типу столбца с помощью оператора CAST. Обновление столбцов, которые используются при вычислении первичного ключа или ключа партиционирования, не поддерживается. Один запрос может содержать несколько команд, разделённых запятыми. Синхронность обработки запроса определяется настройкой mutations_sync. По умолчанию обработка выполняется асинхронно. См. также

Материализованные столбцы

Значение столбца MATERIALIZED, выражение которого использует обновлённый столбец, пересчитывается в ходе мутации, поэтому оно остаётся согласованным с новыми данными.

Столбцы, вычисляемые на основе EPHEMERAL-столбцов

Столбец EPHEMERAL существует только во время выполнения INSERT и никогда не сохраняется, поэтому MATERIALIZED-столбец, вычисляемый на его основе, нельзя пересчитать с помощью мутации. Такой столбец сохраняет значение, вычисленное во время INSERT, которое впоследствии перестаёт соответствовать его выражению:
m равно 8 — значению, вычисленному при выполнении INSERT, а не 2 + 7: значение e недоступно за пределами INSERT, в котором оно было задано. Если по этой причине мутация пропускает столбец, она записывает предупреждение в журнал сервера. Чтобы обновить такой столбец, повторно выполните INSERT для затронутых строк.
Последнее изменение 18 августа 2026 г.