HAPUS DARI

Berlaku untuk:centang ditandai ya pemeriksaan Databricks SQL ditandai ya Databricks Runtime

Menghapus baris yang cocok dengan predikat. Ketika tidak ada predikat yang disediakan, menghapus semua baris.

Pernyataan ini hanya didukung untuk tabel Delta Lake.

Sintaks

DELETE FROM table_name [table_alias] [WHERE predicate]

Parameter

  • table_name

    Mengidentifikasi tabel yang sudah ada. Nama tidak boleh menyertakan spesifikasi temporal.

    table_name tidak boleh tabel asing.

  • table_alias

    Tentukan alias untuk tabel. Alias tidak boleh menyertakan daftar kolom.

  • MANA

    Memfilter baris menurut predikat.

    WHERE Predikat mendukung subkueri, termasuk INsubkueri skalar , , NOT INEXISTS, NOT EXISTS, dan skalar. Jenis subkueri berikut ini tidak didukung:

    • Subkueri berlapis, yaitu subkueri di dalam subkueri lain
    • NOT IN subkueri di dalam OR, misalnya, a = 3 OR b NOT IN (SELECT c from t)

    Dalam kebanyakan kasus, Anda dapat menulis NOT IN ulang subkueri menggunakan NOT EXISTS. Sebaiknya gunakan NOT EXISTS jika memungkinkan, karena DELETE subkueri NOT IN bisa lambat.

Contoh

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