UPDATE
Si applica a: Databricks SQL Databricks Runtime
Aggiorna il columnvalues per le righe che corrispondono a un predicato. Quando non viene specificato alcun predicato, update il columnvalues per tutte le righe.
Questa istruzione è supportata solo per Delta Lake tables.
Sintassi
UPDATE table_name [table_alias]
SET { { column_name | field_name } = [ expr | DEFAULT } [, ...]
[WHERE clause]
Parameters
-
Identifica table da aggiornare. Il nome table non deve usare una specifica temporale o una specifica delle opzioni.
table_name
non deve essere un tableesterno. -
Definire un alias per il table. L'alias non deve includere un columnlist.
-
Riferimento a un column nel table. È possibile fare riferimento a ogni column al massimo una volta.
-
Riferimento al campo all'interno di un column di tipo STRUCT. È possibile fare riferimento a ogni campo al massimo una volta.
-
Espressione arbitraria. Se si fa riferimento a
table_name
ecolumns, essi rappresentano lo stato della riga prima del update. DEFAULT
Si applica a: Databricks SQL Databricks Runtime 11.3 LTS e versioni successive
Espressione
DEFAULT
per il column se è definita, NULL in caso contrario.-
Filtrare le righe in base al predicato. La
WHERE
clausola può includere sottoquery con le eccezioni seguenti:- Sottoquery annidata, ovvero una sottoquery all'interno di un'altra sottoquery
- Sottoquery
NOT IN
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, comeUPDATE
conNOT IN
le sottoquery può essere lento.
Esempi
> UPDATE events SET eventType = 'click' WHERE eventType = 'clk'
> UPDATE all_events
SET session_time = 0, ignored = true
WHERE session_time < (SELECT min(session_time) FROM good_events)
> UPDATE orders AS t1
SET order_status = 'returned'
WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)
> UPDATE events
SET category = 'undefined'
WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')
> UPDATE events
SET ignored = DEFAULT
WHERE eventType = 'unknown'