UPDATE

Van toepassing op:gemarkeerd met ja Databricks SQL-controle gemarkeerd als ja Databricks Runtime

Updates de kolomwaarden voor de rijen die overeenkomen met een predicaat. Wanneer er geen predicaat is opgegeven, werkt u de kolomwaarden voor alle rijen bij.

Deze instructie wordt alleen ondersteund voor Delta Lake-tabellen.

Syntaxis

UPDATE table_name [table_alias]
   SET  { { column_name | field_name }  = [ expr | DEFAULT } [, ...]
   [WHERE clause]

Parameters

  • Table_name

    Identificeert de tabel die moet worden bijgewerkt. De tabelnaam mag geen tijdelijke specificatie gebruiken.

    table_name mag geen refererende tabel zijn.

  • table_alias

    Definieer een alias voor de tabel. De alias mag geen kolomlijst bevatten.

  • column_name

    Een verwijzing naar een kolom in de tabel. U mag maximaal één keer naar elke kolom verwijzen.

  • field_name

    Een verwijzing naar het veld in een kolom van het type STRUCT. U mag maximaal één keer naar elk veld verwijzen.

  • Expr

    Een willekeurige expressie. Als u naar kolommen verwijst table_name , vertegenwoordigen deze de status van de rij vóór de update.

  • STANDAARD

    Van toepassing op:controleer of deze optie is gemarkeerd als ja Databricks SQL SQL Warehouse versie 2022.35 of hoger , gemarkeerd als ja Databricks Runtime 11.2 en hoger

    De DEFAULT expressie voor de kolom als deze is gedefinieerd, NULL anders.

  • WAAR

    Rijen filteren op predicaat. De WHERE component kan subquery's bevatten met de volgende uitzonderingen:

    • Geneste subquery's, dat wil gezegd, een subquery in een andere subquery
    • Een NOT IN subquery in een OR, bijvoorbeeld a = 3 OR b NOT IN (SELECT c from t)

    In de meeste gevallen kunt u subquery's herschrijven NOT IN met behulp van NOT EXISTS. U moet waar mogelijk gebruiken NOT EXISTS , omdat UPDATE subquery's NOT IN traag kunnen zijn.

Voorbeelden

> 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'