DELETE FROM
Si applica a: Databricks SQL Databricks Runtime
Elimina le righe che corrispondono a un predicato. Quando non viene specificato alcun predicato, elimina tutte le righe.
Questa istruzione è supportata solo per Delta Lake tables.
Sintassi
DELETE FROM table_name [table_alias] [WHERE predicate]
Parameters
-
Identifica un tableesistente. Il nome non deve includere una specifica temporale.
table_name
non deve essere un tableesterno. -
Definisci un alias per il table. L'alias non deve includere un columnlist.
-
Filtrare le righe in base al predicato.
Il
WHERE
predicato supporta sottoquery, incluseIN
le sottoquery scalari ,NOT IN
EXISTS
NOT EXISTS
, , e . I tipi di sottoquery seguenti non sono supportati:- Sottoquery annidata, ovvero una sottoquery all'interno di un'altra sottoquery
-
NOT IN
sottoquery all'interno di unOR
oggetto , ad esempioa = 3 OR b NOT IN (SELECT c from t)
Nella maggior parte dei casi, è possibile riscrivere
NOT IN
sottoquery usandoNOT EXISTS
. È consigliabile usareNOT EXISTS
quando possibile, comeDELETE
conNOT IN
le sottoquery, può essere lento.
Esempi
> 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')