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

DELETE

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

Синтаксис

DELETE FROM table WHERE expression

Выражение

Диаграмма

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

Литерал

Диаграмма

TRUE FALSE NULL ? $ unsigned integer double decimal string

Параметры

  • 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
...