AKTUALIZACE
Platí pro: Kontrola Databricks SQL Databricks Runtime
Aktualizace hodnoty sloupců pro řádky, které odpovídají predikátu. Pokud není k dispozici žádný predikát, aktualizujte hodnoty sloupců pro všechny řádky.
Tento příkaz je podporován pouze pro tabulky Delta Lake.
Syntaxe
UPDATE table_name [table_alias]
SET { { column_name | field_name } = [ expr | DEFAULT } [, ...]
[WHERE clause]
Parametry
-
Identifikuje tabulku, která se má aktualizovat. Název tabulky nesmí používat dočasnou specifikaci.
table_name
nesmí být cizí tabulka. -
Definujte alias pro tabulku. Alias nesmí obsahovat seznam sloupců.
-
Odkaz na sloupec v tabulce. Na každý sloupec můžete odkazovat maximálně jednou.
-
Odkaz na pole ve sloupci typu STRUCT. Na každé pole můžete odkazovat maximálně jednou.
-
Libovolný výraz. Pokud odkazujete na
table_name
sloupce, představují stav řádku před aktualizací. VÝCHOZÍ
Platí pro: Databricks SQL Warehouse verze 2022.35 nebo vyšší Databricks Runtime 11.2 a vyšší.
Výraz
DEFAULT
pro sloupec, pokud je definován, v opačném případě hodnota NULL.-
Filtrovat řádky podle predikátu. Klauzule
WHERE
může obsahovat poddotaz s následujícími výjimkami:- Vnořené poddotazy, to znamená poddotaz uvnitř jiného poddotazování
- Poddotaz
NOT IN
uvnitřOR
, napříklada = 3 OR b NOT IN (SELECT c from t)
Ve většině případů můžete poddotaz přepsat
NOT IN
pomocíNOT EXISTS
. Měli byste použítNOT EXISTS
kdykoli je to možné, protožeUPDATE
uNOT IN
poddotazů může být pomalé.
Příklady
> 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'