UPDATE

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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

  • Table_name

    Identifikuje tabulku, která se má aktualizovat. Název tabulky nesmí používat dočasnou specifikaci.

    table_name nesmí být cizí tabulka.

  • table_alias

    Definujte alias tabulky. Alias nesmí obsahovat seznam sloupců.

  • Column_name

    Odkaz na sloupec v tabulce Na každý sloupec můžete odkazovat maximálně jednou.

  • field_name

    Odkaz na pole v rámci sloupce typu STRUCT. Na každé pole můžete odkazovat maximálně jednou.

  • Výraz

    Libovolný výraz. Pokud odkazujete na table_name sloupce, které představují stav řádku před aktualizací.

  • VÝCHOZÍ

    Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 11.3 LTS a vyšší

    Výraz DEFAULT pro sloupec, pokud je definován, null jinak.

  • WHERE

    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říklad ORa = 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žít NOT EXISTS stejně jako UPDATE u NOT 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'