DELETE FROM

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

Menghapus baris yang cocok dengan predikat. Jika tidak ada predikat yang disediakan, semua baris akan dihapus.

Pernyataan ini hanya didukung untuk tabel Delta Lake.

Sintaks

[ common_table_expression ]
    DELETE FROM table_name [table_alias] [WHERE predicate]

Parameter

  • ekspresi tabel umum

    Ekspresi tabel umum (CTE) adalah satu atau beberapa kueri bernama yang dapat digunakan kembali beberapa kali dalam blok kueri utama untuk menghindari komputasi berulang atau untuk meningkatkan keterbacaan kueri berlapis yang kompleks.

  • table_name

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

    table_name tidak boleh menjadi tabel asing.

  • table_alias

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

  • WHERE

    Memfilter baris menurut predikat.

    Predikat WHERE mendukung subkueri, termasuk IN, NOT IN, EXISTS, NOT EXISTS, serta subkueri skalar. Jenis subkueri berikut tidak didukung:

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

    Dalam kebanyakan kasus, Anda dapat menulis ulang subkueri NOT IN dengan menggunakan NOT EXISTS. Kami menyarankan menggunakan NOT EXISTS kapan pun memungkinkan, karena DELETE dengan sub-kueri 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')