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.

Ta instrukcja jest obsługiwana tylko w przypadku tabel usługi Delta Lake.

Składnia

DELETE FROM table_name [table_alias] [WHERE predicate]

Parametry

  • 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 INpodzapytania , NOT IN, EXISTSNOT EXISTSi skalarne. Następujące typy podzapytania nie są obsługiwane:

    • Zagnieżdżone podzapytania, czyli podzapytania wewnątrz innego podzapytania
    • NOT IN podzapytywanie wewnątrz elementu 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, tak jak DELETE w przypadku NOT IN podzapytania 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')