UPDATE
Platí pro: Databricks SQL
Databricks Runtime
Aktualizuje hodnoty sloupců pro řádky, které odpovídají predikátu. Pokud není k dispozici žádný predikát, aktualizujte hodnoty sloupců pro všechny řádky.
Toto tvrzení platí 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 nebo specifikaci možností.
table_name
nesmí být cizí tabulka. -
Definujte alias tabulky. Alias nesmí obsahovat seznam sloupců.
-
Odkaz na sloupec v tabulce Na každý sloupec můžete odkazovat maximálně jednou.
-
Odkaz na pole v rámci sloupce 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
Databricks Runtime 11.3 LTS a vyšší
Výraz
DEFAULT
pro sloupec, pokud je definován, NULL jinak.-
Filtrovat řádky podle predikátu Klauzule
WHERE
může obsahovat poddotazy s následujícími výjimkami:- Vnořené poddotazy, tedy poddotaz uvnitř jiného poddotazu
- Poddotaz
NOT IN
uvnitř napříkladOR
a = 3 OR b NOT IN (SELECT c from t)
Ve většině případů můžete poddotazy přepsat
NOT IN
pomocí .NOT EXISTS
Kdykoli je to možné, měli byste ho použítNOT EXISTS
stejně jakoUPDATE
uNOT IN
poddotazů.
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'