Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
[ common_table_expression ]
DELETE FROM table_name [table_alias] [WHERE predicate]
Parametry
-
Běžné výrazy tabulek (CTE) jsou jeden nebo více pojmenovaných dotazů, které je možné opakovaně použít v rámci hlavního bloku dotazu, aby nedocházelo k opakovaným výpočtům nebo ke zlepšení čitelnosti složitých vnořených dotazů.
-
Identifikuje existující tabulku. Název nesmí obsahovat dočasnou specifikaci.
table_namenesmí být cizí tabulka. -
Definujte alias tabulky. Alias nesmí obsahovat seznam sloupců.
-
Filtrovat řádky podle predikátu
Predikát
WHEREpodporuje poddotazy, včetněIN,NOT INEXISTS,NOT EXISTS, a skalárních poddotazů. Následující typy poddotazů se nepodporují:- Vnořené poddotazy, tedy poddotaz uvnitř jiného poddotazu
-
NOT INpoddotaz uvnitř napříkladORa = 3 OR b NOT IN (SELECT c from t)
Ve většině případů můžete poddotazy přepsat
NOT INpomocí .NOT EXISTSDoporučujeme používatNOT EXISTSkdykoli je to možné, stejně jakoDELETEuNOT INpoddotazů 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')