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

DELETE

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

Синтаксис

DELETE FROM table WHERE expression

Выражение

Диаграмма

NOT table . column literal case cast current_date substr to_char to_date trim NOT EXISTS ( select values ) ( select values ) ( 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 warehouse OPTION (
    VTABLE_MAX_ROWS = 100,
    SQL_VDBE_MAX_STEPS = 15000
)

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

DELETE FROM warehouse where id = 1;

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

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

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