UPDATE
A következőkre vonatkozik: Databricks SQL Databricks Runtime
Frissíti a predikátumnak megfelelő sorok oszlopértékeit. Ha nincs megadva predikátum, frissítse az összes sor oszlopértékét.
Ez az utasítás csak Delta Lake-táblák esetében támogatott.
Syntax
UPDATE table_name [table_alias]
SET { { column_name | field_name } = [ expr | DEFAULT } [, ...]
[WHERE clause]
Paraméterek
-
Azonosítja a frissíteni kívánt táblát. A táblanév nem használhat időbeli specifikációt.
table_name
nem lehet idegen tábla. -
Adjon meg egy aliast a táblához. Az alias nem tartalmazhat oszloplistát.
-
Hivatkozás a tábla egyik oszlopára. Az egyes oszlopokra legfeljebb egyszer hivatkozhat.
-
Hivatkozás a STRUCT típusú oszlopban lévő mezőre. Az egyes mezőkre legfeljebb egyszer hivatkozhat.
-
Tetszőleges kifejezés. Ha oszlopokra hivatkozik
table_name
, azok a frissítés előtti sor állapotát jelölik. ALAPÉRTELMEZETT
A következőkre vonatkozik: Databricks SQL Databricks Runtime 11.3 LTS és újabb
Az
DEFAULT
oszlop kifejezése, ha van definiálva, null értékű.-
Sorok szűrése predikátum szerint. A
WHERE
záradék az alábbi kivételekkel rendelkező al lekérdezéseket tartalmazhat:- Beágyazott al lekérdezések, vagyis egy alquery egy másik alqueryben
- Egy
NOT IN
alquery egyOR
adott területen belül, például:a = 3 OR b NOT IN (SELECT c from t)
A legtöbb esetben újraírhatja
NOT IN
az al lekérdezéseket a következő használatávalNOT EXISTS
: . Ha lehetséges, használjaNOT EXISTS
, mivelUPDATE
azNOT IN
albekérdezések lassúak lehetnek.
Példák
> 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'