TÖRLÉS INNEN:
A következőre vonatkozik: Databricks SQL Databricks Runtime
Törli a predikátumnak megfelelő sorokat. Ha nincs megadva predikátum, az összes sort törli.
Ez az utasítás csak Delta Lake-táblák esetében támogatott.
Szintaxis
DELETE FROM table_name [table_alias] [WHERE predicate]
Paraméterek
-
Egy meglévő táblát azonosít. A név nem tartalmazhat időbeli specifikációt.
table_name
nem lehet idegen tábla. -
Határozzon meg egy aliast a táblához. Az alias nem tartalmazhat oszloplistát.
-
Sorok szűrése predikátum alapján.
A
WHERE
predikátum támogatja az al lekérdezéseket, beleértve aIN
,NOT IN
,EXISTS
,NOT EXISTS
és skaláris al lekérdezéseket. A következő típusú al lekérdezések nem támogatottak:- Beágyazott al lekérdezések, azaz egy al lekérdezés egy másik al lekérdezésben
NOT IN
subquery a -benOR
, például:a = 3 OR b NOT IN (SELECT c from t)
A legtöbb esetben a használatával
NOT EXISTS
újraírhatjaNOT IN
az al lekérdezéseket. Azt javasoljuk, hogy amikor csak lehetséges, használjaNOT EXISTS
, mivelDELETE
azNOT IN
albekérdezések lassúak lehetnek.
Példák
> 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')