---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/yql/reference/syntax/batch-update.md?version=v26.1
  - https://ydb.tech/docs/ru/yql/reference/syntax/batch-update.md?version=v26.1
  - href: ru/yql/reference/syntax/batch-update.md
    type: text/markdown
    title: Markdown version
  - href: ../../../llms.txt
    type: text/markdown
    title: llms.txt
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=v26.1).

{% endnote %}

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

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

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

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

## Пример

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