DELETE FROM
適用於: Databricks SQL Databricks Runtime
刪除符合述詞的數據列。 未提供述詞時,會刪除所有數據列。
只有 Delta Lake 數據表才支援此語句。
語法
DELETE FROM table_name [table_alias] [WHERE predicate]
參數
-
識別現有的數據表。 名稱不得包含時態性規格。
table_name
不得為外表。 -
定義數據表的別名。 別名不得包含數據行清單。
-
依述詞篩選數據列。
述
WHERE
詞支持子查詢,包括IN
、NOT IN
、EXISTS
、NOT EXISTS
、 和純量子查詢。 不支援下列型態的子查詢:- 巢狀子查詢,也就是另一個子查詢內的子查詢
NOT IN
中的子查詢OR
,例如a = 3 OR b NOT IN (SELECT c from t)
在大部分情況下,您可以使用 重寫
NOT IN
子查詢NOT EXISTS
。 我們建議盡可能使用NOT EXISTS
,因為DELETE
使用NOT IN
子查詢可能會很慢。
範例
> 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')