Delen via


UPDATE

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Hiermee wordt de columnvalues bijgewerkt voor de rijen die overeenkomen met een predicaat. Wanneer er geen predicaat wordt opgegeven, update de columnvalues voor alle rijen.

Deze verklaring wordt alleen ondersteund voor Delta Lake tables.

Syntaxis

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

Parameters

  • table_name

    Identificeert table dat moet worden bijgewerkt. De naam van de table mag geen tijdelijke specificatie of optiesspecificatiegebruiken.

    table_name mag geen buitenlandse tablezijn.

  • table_alias

    Definieer een alias voor de table. De alias mag geen columnlistbevatten.

  • column_name

    Een verwijzing naar een column in de table. U kunt maximaal één keer naar elke column verwijzen.

  • field_name

    Een verwijzing naar een veld binnen een column van het type STRUCT. U kunt maximaal één keer verwijzen naar elk veld.

  • expr

    Een willekeurige expressie. Als u naar table_namecolumns verwijst, vertegenwoordigen ze de status van de rij vóór de update.

  • VERSTEK

    Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 11.3 LTS en hoger

    De uitdrukking DEFAULT voor de column, indien gedefinieerd; anders NULL.

  • WHERE

    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 binnen een OR, bijvoorbeeld a = 3 OR b NOT IN (SELECT c from t)

    In de meeste gevallen kunt u subquery's opnieuw schrijven 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'