SQLLab
dmlНачальный

DELETE

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

Синтаксис
DELETE FROM table WHERE condition;

Объяснение

DELETE FROM удаляет строки по одной, с проверкой ограничений и срабатыванием триггеров — поэтому на больших объёмах медленнее, чем TRUNCATE. Без WHERE удалятся ВСЕ строки таблицы. PostgreSQL поддерживает DELETE ... USING — удаление с условием, ссылающимся на другую таблицу, аналогично UPDATE ... FROM.

Пример

DELETE FROM sessions WHERE expires_at < now();

-- DELETE ... USING: удаление по условию из другой таблицы (PostgreSQL)
DELETE FROM order_items oi
USING orders o
WHERE oi.order_id = o.id AND o.status = 'cancelled';