Udostępnij za pośrednictwem


DELETE FROM

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime

Usuwa wiersze zgodne z predykatem. Jeśli nie podano predykatu, usuwa wszystkie wiersze.

To stwierdzenie jest obsługiwane tylko dla tabel Delta Lake.

Składnia

[ common_table_expression ]
    DELETE FROM table_name [table_alias] [WHERE predicate]

Parametry

  • typowe wyrażenie tabeli

    Typowe wyrażenia tabeli (CTE) to jedno lub więcej nazwanych zapytań, które można wielokrotnie używać w głównym bloku zapytań, aby uniknąć powtarzających się obliczeń lub zwiększyć czytelność złożonych, zagnieżdżonych zapytań.

  • table_name

    Identyfikuje istniejącą tabelę. Nazwa nie może zawierać specyfikacji czasowej.

    table_name nie może być tabelą obcą.

  • table_alias

    Zdefiniuj alias dla tabeli. Alias nie może zawierać listy kolumn.

  • WHERE

    Filtruj wiersze według predykatu.

    Predykat WHERE obsługuje podzapytania, w tym IN, NOT IN, EXISTS, NOT EXISTS, i skalarne podzapytania. Następujące typy podzapytania nie są obsługiwane:

    • Zagnieżdżone podzapytania, czyli podzapytania wewnątrz innego podzapytania
    • NOT IN zapytanie podrzędne wewnątrz OR, na przykład a = 3 OR b NOT IN (SELECT c from t)

    W większości przypadków można ponownie napisać NOT IN podzapytania przy użyciu polecenia NOT EXISTS. Zalecamy używanie NOT EXISTS zawsze, gdy jest to możliwe, ponieważ DELETE z podzapytań NOT IN może być powolne.

Przykłady

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