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 állítás csak a 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 vagy beállításspecifiká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
table_name
oszlopokra hivatkozik, 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 oszlop
DEFAULT
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 alkérdezések, vagyis egy alkérdezés egy másik alkérdezésben
- Egy
NOT IN
al-lekérdezés egyOR
belül, példáula = 3 OR b NOT IN (SELECT c from t)
.
A legtöbb esetben az al-lekérdezéseket újraírhatja a(z)
NOT EXISTS
használatával. 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'