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
Hiermit werden die Zeilen gelöscht, die mit einem Prädikat übereinstimmen. Wenn kein Prädikat angegeben ist, werden alle Zeilen gelöscht.
Diese Anweisung wird nur für Delta Lake-Tabellen unterstützt.
Syntax
[ common_table_expression ]
DELETE FROM table_name [table_alias] [WHERE predicate]
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.
-
Hiermit wird eine vorhandene Tabelle identifiziert. Der Name darf keine temporale Spezifikation enthalten.
table_name
darf keine Fremdtabelle sein. -
Hiermit wird ein Alias für die Tabelle definiert. Der Alias darf keine Spaltenliste enthalten.
-
Filtert Zeilen nach Prädikat.
Das Prädikat
WHERE
unterstützt Unterabfragen, einschließlichIN
,NOT IN
,EXISTS
,NOT EXISTS
und skalare Unterabfragen. Die folgenden Unterabfragetypen werden nicht unterstützt:- Geschachtelte Unterabfragen, d. h. eine Unterabfrage innerhalb einer anderen Unterabfrage
-
NOT IN
-Unterabfrage in einerOR
-Abfrage, 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. Wir empfehlen, nach MöglichkeitNOT EXISTS
zu verwenden, daDELETE
mitNOT IN
-Unterabfragen langsam sein kann.
Beispiele
> DELETE FROM events WHERE date < '2017-01-01'
> DELETE FROM all_events
WHERE session_time < (SELECT min(session_time) FROM good_events)
> DELETE FROM orders AS t1
WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)
> DELETE FROM events
WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')