BATCH UPDATE

Совет

Перед тем как изучать BATCH UPDATE, рекомендуется ознакомиться со стандартным UPDATE.

BATCH UPDATE позволяет обновлять записи в таблицах большого размера, минимизируя риск отмены блокировок и отката транзакций за счёт ослабления гарантий. Обновление данных выполняется в виде серии транзакций для каждой партиции указанной таблицы отдельно, обрабатывая по 10 000 строк за итерацию. Каждый запрос обрабатывает не более 10 партиций одновременно.

Данный запрос, как и стандартный UPDATE, выполняется синхронно и завершается с некоторым статусом. В случае возникновения ошибки или отключения клиента обновление данных останавливается, применённые изменения не откатываются.

Семантика наследуется от стандартного UPDATE с ограничениями:

  • Поддерживается только для строковых таблиц.
  • Поддерживается только для неявного контроля транзакции (режим NoTx или EmptyTxControl в SDK).
  • Поддерживаются только идемпотентные обновления: выражения после SET не должны зависеть от текущих значений изменяемых колонок.
  • Запрещено использование подзапросов и нескольких выражений в одном запросе.
  • Недоступно ключевое слово RETURNING.

Пример

BATCH UPDATE my_table
SET Value1 = "foo", Value2 = 0
WHERE Key1 > 1;
Предыдущая
Следующая