Перейти к содержанию

DELETE

DML-команда DELETE используется для удаления данных из таблицы.

Синтаксис

DELETE FROM table WHERE expression

Выражение

Диаграмма

NOT table . column literal cast NOT EXISTS ( dql ) ( dql ) ( expression , ) IS NOT NULL expression NOT BETWEEN expression AND + - * / <> != >= > <= < = NOT IN || AND OR expression

Литерал

Диаграмма

TRUE FALSE NULL decimal double integer string unsigned $ unsigned ?

Параметры

  • TABLE — имя таблицы. Соответствует правилам имен для всех объектов в кластере.

Ограничения

При выполнении запроса на удаление нескольких строк может возникнуть ошибка неблокирующего SQL. Если виртуальная таблица на узле, на который был отправлен запрос пользователем, не может вместить промежуточный результат (не хватает емкости виртуальной таблицы vtable_max_rows) и/или задействовано слишком много операций с кортежами на одном из узлов хранения (sql_vdbe_max_steps), то запрос будет отработан лишь частично. Следует увеличить значения указанных параметров в опциях запроса и повторить его.

Примеры

Простой запрос удаляет все данные из указанной таблицы:

DELETE FROM characters OPTION (
    VTABLE_MAX_ROWS = 100,
    SQL_VDBE_MAX_STEPS = 15000
)

Запрос с условием позволяет удалить только нужный кортеж:

DELETE FROM characters where id = 1;

Или несколько строк:

DELETE FROM characters WHERE id IN (1,2,3);

В всех случаях в выводе в консоль будет указано количество удаленных кортежей. Например:

---
- row_count: 3
...