UPDATE
Van toepassing op: Databricks SQL 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
-
Identificeert table dat moet worden bijgewerkt. De naam van de table mag geen tijdelijke specificatie of optiesspecificatiegebruiken.
table_name
mag geen buitenlandse tablezijn. -
Definieer een alias voor de table. De alias mag geen columnlistbevatten.
-
Een verwijzing naar een column in de table. U kunt maximaal één keer naar elke column verwijzen.
-
Een verwijzing naar een veld binnen een column van het type STRUCT. U kunt maximaal één keer verwijzen naar elk veld.
-
Een willekeurige expressie. Als u naar
table_name
columns verwijst, vertegenwoordigen ze de status van de rij vóór de update. VERSTEK
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
De uitdrukking
DEFAULT
voor de column, indien 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'