UPDATE
Van toepassing op: Databricks SQL Databricks Runtime
Hiermee worden de kolomwaarden bijgewerkt 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
-
Identificeert de tabel die moet worden bijgewerkt. De tabelnaam mag geen tijdelijke specificatie of optiesspecificatie gebruiken.
table_name
mag geen refererende tabel zijn. -
Definieer een alias voor de tabel. De alias mag geen kolomlijst bevatten.
-
Een verwijzing naar een kolom in de tabel. U kunt maximaal één keer verwijzen naar elke kolom.
-
Een verwijzing naar het veld in een kolom van het type STRUCT. U kunt maximaal één keer verwijzen naar elk veld.
-
Een willekeurige expressie. Als u verwijst naar
table_name
kolommen die de status van de rij vóór de update vertegenwoordigen. VERSTEK
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
De
DEFAULT
expressie voor de kolom als deze is gedefinieerd, anders NULL.-
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 eenOR
, bijvoorbeelda = 3 OR b NOT IN (SELECT c from t)
In de meeste gevallen kunt u subquery's opnieuw schrijven
NOT IN
met behulp vanNOT EXISTS
. U moet waar mogelijk gebruikenNOT EXISTS
, omdatUPDATE
subquery'sNOT 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'