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';