DELETE FROM
Platí pro: Databricks SQL
Databricks Runtime
Odstraní řádky, které odpovídají predikátu. Pokud není k dispozici žádný predikát, odstraní všechny řádky.
Toto prohlášení je podporováno pouze pro tabulky Delta Lake.
Syntaxe
DELETE FROM table_name [table_alias] [WHERE predicate]
Parametry
-
Identifikuje existující tabulku. Název nesmí obsahovat dočasnou specifikaci.
table_name
nesmí být cizí tabulka. -
Definujte alias tabulky. Alias nesmí obsahovat seznam sloupců.
-
Filtrovat řádky podle predikátu
Predikát
WHERE
podporuje poddotazy, včetněIN
,NOT IN
EXISTS
,NOT EXISTS
, a skalárních poddotazů. Následující typy poddotazů se nepodporují:- Vnořené poddotazy, tedy poddotaz uvnitř jiného poddotazu
-
NOT IN
poddotaz uvnitř napříkladOR
a = 3 OR b NOT IN (SELECT c from t)
Ve většině případů můžete poddotazy přepsat
NOT IN
pomocí .NOT EXISTS
Doporučujeme používatNOT EXISTS
kdykoli je to možné, stejně jakoDELETE
uNOT IN
poddotazů může být pomalé.
Příklady
> 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')