Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: Databricks SQL
Databricks Runtime
Aktualisiert die Spaltenwerte für die Zeilen, die mit einem Prädikat übereinstimmen. Wenn kein Prädikat angegeben wird, aktualisieren Sie die Spaltenwerte für alle Zeilen.
Diese Anweisung wird nur für Delta Lake-Tabellen unterstützt.
Syntax
[ common_table_expression ]
UPDATE table_name [table_alias]
SET { { column_name | field_name } = [ expr | DEFAULT } [, ...]
[WHERE clause]
Parameter
-
Allgemeine Tabellenausdrücke (Common Table Expressions, CTE) sind eine oder mehrere benannte Abfragen, die mehrmals innerhalb des Hauptabfrageblocks wiederverwendet werden können, um wiederholte Berechnungen zu vermeiden oder die Lesbarkeit komplexer, geschachtelter Abfragen zu verbessern.
-
Bestimmt die zu aktualisierende Tabelle. Der Tabellenname darf keine zeitliche Spezifikation oder Optionsspezifikation verwenden.
table_name
darf keine Fremdtabelle sein. -
Hiermit wird ein Alias für die Tabelle definiert. Der Alias darf keine Spaltenliste enthalten.
-
Ein Verweis auf eine Spalte in der Tabelle. Sie können höchstens einmal auf jede Spalte verweisen.
-
Ein Verweis auf das Feld in einer Spalte mit dem Typ STRUCT. Sie können höchstens einmal auf jedes Feld verweisen.
-
Ein beliebiger Ausdruck. Wenn Sie auf
table_name
-Spalten verweisen, stellen diese den Zustand der Zeile vor der Aktualisierung dar. VORGABE
Gilt für:
Databricks SQL
Databricks Runtime 11.3 LTS und höher
Der
DEFAULT
-Ausdruck für die Spalte, wenn eine definiert ist, andernfalls NULL.-
Filtert Zeilen nach Prädikat. Die
WHERE
-Klausel kann Unterabfragen mit den folgenden Ausnahmen enthalten:- Geschachtelte Unterabfragen, d. h. eine Unterabfrage innerhalb einer anderen Unterabfrage
- Eine
NOT IN
-Unterabfrage inOR
, z. B.a = 3 OR b NOT IN (SELECT c from t)
In den meisten Fällen können Sie
NOT IN
-Unterabfragen mithilfe vonNOT EXISTS
umschreiben. Sie sollten nach MöglichkeitNOT EXISTS
verwenden, daUPDATE
mitNOT IN
-Unterabfragen langsam sein kann.
Beispiele
> 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'