Megosztás a következőn keresztül:


UPDATE

A következőkre vonatkozik: jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet 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

  • table_name

    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.

  • table_alias

    Adjon meg egy aliast a táblához. Az alias nem tartalmazhat oszloplistát.

  • column_name

    Hivatkozás a tábla egyik oszlopára. Az egyes oszlopokra legfeljebb egyszer hivatkozhat.

  • field_name

    Hivatkozás a STRUCT típusú oszlopban lévő mezőre. Az egyes mezőkre legfeljebb egyszer hivatkozhat.

  • expr

    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: jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime 11.3 LTS és újabb

    Az DEFAULT oszlop kifejezése, ha van definiálva, null értékű.

  • HOL

    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 egy ORadott 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ával NOT EXISTS: . Ha lehetséges, használja NOT EXISTS , mivel UPDATE az NOT 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'