DELETE FROM

Область применения:проверка помечено да Databricks SQL проверка помечено да Databricks Runtime

Удаляет строки, соответствующие предикату. Если предикат не указан, удаляет все строки.

Эта инструкция поддерживается только для таблиц Delta Lake.

Синтаксис

DELETE FROM table_name [table_alias] [WHERE predicate]

Параметры

  • table_name

    Определяет существующую таблицу. Имя не должно включать темпоральную спецификацию.

    table_name не должен быть внешней таблицей.

  • table_alias

    Определите псевдоним для таблицы. Псевдоним не должен содержать список столбцов.

  • ГДЕ

    Фильтрация строк по предикату.

    Предикат WHERE поддерживает вложенные запросы, включая IN, NOT IN, EXISTS, NOT EXISTSи скалярные вложенные запросы. Следующие типы вложенных запросов не поддерживаются:

    • Вложенные вложенные запросы, то есть вложенные запросы внутри другого вложенного запроса
    • NOT IN вложенный ORзапрос внутри , например a = 3 OR b NOT IN (SELECT c from t)

    В большинстве случаев можно переписать вложенные NOT IN запросы с помощью NOT EXISTS. Рекомендуется использовать по NOT EXISTS возможности, так как DELETE вложенные NOT IN запросы могут выполняться медленно.

Примеры

> DELETE FROM events WHERE date < '2017-01-01'

> DELETE FROM all_events
   WHERE session_time < (SELECT min(session_time) FROM good_events)

> DELETE FROM orders AS t1
   WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)

> DELETE FROM events
   WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')