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


# DELETE FROM

<!-- source: ru/yql/reference/_includes/limitation-column-row-in-read-only-tx-warn.md -->
{% note warning %}

<!-- source: ru/yql/reference/_includes/limitation-column-row-in-read-only-tx.md -->
В настоящее время одновременное использование [колоночных](https://ydb.tech/docs/ru/concepts/glossary.md#column-oriented-table) и [строковых](https://ydb.tech/docs/ru/concepts/glossary.md#row-oriented-table) таблиц поддерживается в транзакциях, в которых данные только читаются, но не изменяются. Поддержка транзакций с возможностью модификации данных при одновременном использовании строковых и колоночных таблиц находится в разработке.

Если попытаться выполнить операцию записи в транзакции, в которой задействованы и колоночные, и строковые таблицы, транзакция завершится с ошибкой: `Write transactions that use both row-oriented and column-oriented tables are disabled at current time`.
<!-- endsource: ru/yql/reference/_includes/limitation-column-row-in-read-only-tx.md -->

{% endnote %}
<!-- endsource: ru/yql/reference/_includes/limitation-column-row-in-read-only-tx-warn.md -->

Удаляет строки из таблицы, подходящие под условия, заданные в `WHERE`.

## Пример

```yql
DELETE FROM my_table
WHERE Key1 == 1 AND Key2 >= "One";
```

## DELETE FROM ... ON {#delete-on}

Используется для удаления данных на основе результатов подзапроса. Набор колонок, возвращаемых подзапросом, должен быть подмножеством колонок обновляемой таблицы, и в составе возвращаемых колонок обязательно должны присутствовать все колонки первичного ключа таблицы. Типы данных возвращаемых подзапросом колонок должны совпадать с типами данных соответствующих колонок таблицы.

Для поиска удаляемых из таблицы записей используется значение первичного ключа. Присутствие других (неключевых) колонок таблицы в составе выходных колонок подзапроса не влияет на результаты операции удаления.


### Пример

```yql
$to_delete = (
    SELECT Key, SubKey FROM my_table WHERE Value = "ToDelete" LIMIT 100
);

DELETE FROM my_table ON
SELECT * FROM $to_delete;
```

## DELETE FROM ... RETURNING {delete-from-returning}

Используется для удаления строк и одновременного возврата значений из них. Это позволяет получить информацию об удаляемых записях за один запрос, избавляя от необходимости выполнять предварительный SELECT.

### Примеры

* Возврат всех значений удаленных строк

```yql
DELETE FROM orders
WHERE status = 'cancelled'
RETURNING *;
```

* Возврат конкретных столбцов

```yql
DELETE FROM orders
WHERE status = 'cancelled'
RETURNING order_id, order_date;
```


## См. также

* [BATCH DELETE](https://ydb.tech/docs/ru/yql/reference/syntax/batch-delete.md)
