Sdílet prostřednictvím


DELETE FROM

Platí pro: zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime

Odstraní řádky, které odpovídají predikátu. Pokud není k dispozici žádný predikát, odstraní všechny řádky.

Tento příkaz je podporován pouze pro tabulky Delta Lake.

Syntaxe

DELETE FROM table_name [table_alias] [WHERE predicate]

Parametry

  • table_name

    Identifikuje existující tabulku. Název nesmí obsahovat dočasnou specifikaci.

    table_name nesmí být cizí tabulka.

  • table_alias

    Definujte alias tabulky. Alias nesmí obsahovat seznam sloupců.

  • WHERE

    Filtrovat řádky podle predikátu

    Predikát WHERE podporuje poddotazy, včetně IN, EXISTSNOT IN, NOT EXISTS, a skalárních poddotazů. Následující typy poddotazů se nepodporují:

    • Vnořené poddotazy, tedy poddotaz uvnitř jiného poddotazu
    • NOT INpoddotaz uvnitř například ORa = 3 OR b NOT IN (SELECT c from t)

    Ve většině případů můžete poddotazy přepsat NOT IN pomocí .NOT EXISTS Doporučujeme používat NOT EXISTS kdykoli je to možné, stejně jako DELETE u NOT IN poddotazů může být pomalé.

Příklady

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