---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://ydb.tech/docs/en/yql/reference/syntax/batch-update.md?version=main
  - https://ydb.tech/docs/ru/yql/reference/syntax/batch-update.md?version=main
sourcePath: ru/core/yql/reference/syntax/batch-update.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt


# BATCH UPDATE

{% note tip %}

Перед тем как изучать `BATCH UPDATE`, рекомендуется ознакомиться со стандартным [UPDATE](https://ydb.tech/docs/ru/yql/reference/syntax/update.md?version=main).

{% endnote %}

`BATCH UPDATE` позволяет обновлять записи в таблицах большого размера, минимизируя риск отмены блокировок и отката транзакций за счёт ослабления гарантий. Обновление данных выполняется в виде серии транзакций для каждой [партиции](https://ydb.tech/docs/ru/concepts/datamodel/table.md?version=main#partitioning_row_table) указанной таблицы отдельно, обрабатывая по 10 000 строк за итерацию. Каждый запрос обрабатывает не более 10 партиций одновременно.

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

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

* Поддерживается только для [строковых таблиц](https://ydb.tech/docs/ru/concepts/glossary.md?version=main#row-oriented-table).
* Поддерживается только в режиме [неявного контроля транзакций](https://ydb.tech/docs/ru/concepts/transactions.md?version=main#implicit).
* Поддерживаются только идемпотентные обновления: выражения после `SET` не должны зависеть от текущих значений изменяемых колонок.
* Запрещено использование подзапросов и нескольких выражений в одном запросе.
* Недоступно ключевое слово `RETURNING`.

## Пример

```yql
BATCH UPDATE my_table
SET Value1 = "foo", Value2 = 0
WHERE Key1 > 1;
```