DELETE FROM

適用于:核取標示為是 Databricks SQL 檢查標示為是 Databricks Runtime

刪除符合述詞的資料列。 未提供述詞時,會刪除所有資料列。

只有 Delta Lake 資料表才支援此語句。

語法

DELETE FROM table_name [table_alias] [WHERE predicate]

參數

  • table_name

    識別現有的資料表。 名稱不得包含 時態規格

    table_name 不得為外部資料表。

  • table_alias

    定義資料表的別名。 別名不得包含資料行清單。

  • WHERE

    依述詞篩選資料列。

    WHERE 詞支援子查詢,包括 INNOT INEXISTSNOT EXISTS 和純量子查詢。 不支援下列類型的子查詢:

    • 巢狀子查詢,也就是另一個子查詢內的子查詢
    • NOT IN 中的 OR 子查詢,例如 a = 3 OR b NOT IN (SELECT c from t)

    在大部分情況下,您可以使用 重寫 NOT IN 子查詢 NOT EXISTS 。 建議您盡可能使用 NOT EXISTS ,因為 DELETENOT 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')