DELETE FROM
Dotyczy: Databricks SQL Databricks Runtime
Usuwa wiersze zgodne z predykatem. Jeśli nie podano predykatu, usuwa wszystkie wiersze.
To stwierdzenie jest wspierane tylko dla Delta Lake tables.
Składnia
DELETE FROM table_name [table_alias] [WHERE predicate]
Parameters
-
Identyfikuje istniejącą table. Nazwa nie może zawierać specyfikacji czasowej.
table_name
nie może być obcym table. -
Zdefiniuj alias dla table. Alias nie może zawierać columnlist.
-
Filtruj wiersze według predykatu.
Predykat
WHERE
obsługuje podzapytania, w tymIN
podzapytania ,NOT IN
,EXISTS
NOT EXISTS
i 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 elementuOR
, na przykłada = 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 poleceniaNOT EXISTS
. Zalecamy używanieNOT EXISTS
zawsze, gdy jest to możliwe, tak jakDELETE
w przypadkuNOT 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')