DELETE FROM

Si applica a: segno di spunta sì Databricks SQL segno di spunta sì Databricks Runtime

Elimina le righe che corrispondono a un predicato. Quando non viene specificato alcun predicato, elimina tutte le righe.

Questa istruzione è supportata solo per le tabelle Delta Lake.

Sintassi

DELETE FROM table_name [table_alias] [WHERE predicate]

Parametri

  • table_name

    Identifica una tabella esistente. Il nome non deve includere una specifica temporale.

    table_name non deve essere una tabella esterna.

  • table_alias

    Definire un alias per la tabella. L'alias non deve includere un elenco di colonne.

  • WHERE

    Filtrare le righe in base al predicato.

    Il WHERE predicato supporta sottoquery, incluse INle sottoquery scalari , NOT INEXISTSNOT EXISTS, , e . I tipi di sottoquery seguenti non sono supportati:

    • Sottoquery annidata, ovvero una sottoquery all'interno di un'altra sottoquery
    • NOT IN sottoquery all'interno di un ORoggetto , ad esempio a = 3 OR b NOT IN (SELECT c from t)

    Nella maggior parte dei casi, è possibile riscrivere NOT IN sottoquery usando NOT EXISTS. È consigliabile usare NOT EXISTS quando possibile, come DELETE con NOT IN le sottoquery, può essere lento.

Esempi

> 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')