UPDATE
Berlaku untuk: Databricks SQL
Databricks Runtime
Memperbarui nilai kolom untuk baris yang cocok dengan predikat. Saat tidak ada predikat yang disediakan, perbarui nilai kolom semua baris.
Pernyataan ini hanya didukung untuk tabel Delta Lake.
Sintaks
UPDATE table_name [table_alias]
SET { { column_name | field_name } = [ expr | DEFAULT } [, ...]
[WHERE clause]
Parameter
-
Mengidentifikasi tabel yang akan diperbarui. Nama tabel tidak boleh menggunakan spesifikasi temporal atau spesifikasi opsi.
table_name
tidak boleh meja asing. -
Menentukan alias untuk tabel. Alias tidak boleh menyertakan daftar kolom.
-
Referensi ke kolom dalam tabel. Anda dapat mereferensikan setiap kolom paling banyak sekali.
-
Referensi ke bidang dalam kolom berjenis STRUCT. Anda dapat merujuk setiap bidang paling banyak sekali.
-
Ekspresi yang arbitrer. Jika Anda mereferensikan kolom
table_name
, kolom tersebut mewakili status baris sebelum pembaruan. DEFAULT
Berlaku untuk:
Databricks SQL
Databricks Runtime 11.3 LTS ke atas
Ekspresi
DEFAULT
untuk kolom jika ditentukan, NULL sebaliknya.-
Memfilter baris menurut predikat. Klausul
WHERE
dapat mencakup kueri bertumpuk dengan pengecualian berikut:- subkueri berlapis, yaitu subkueri di dalam subkueri lain
- Sebuah subkueri
NOT IN
di dalamOR
, misalnya,a = 3 OR b NOT IN (SELECT c from t)
Dalam kebanyakan kasus, Anda dapat menulis ulang subkueri
NOT IN
dengan menggunakanNOT EXISTS
. Anda harus menggunakanNOT EXISTS
bila memungkinkan, karenaUPDATE
dengan kueri bertumpukNOT IN
bisa menajdi lambat.
Contoh
> UPDATE events SET eventType = 'click' WHERE eventType = 'clk'
> UPDATE all_events
SET session_time = 0, ignored = true
WHERE session_time < (SELECT min(session_time) FROM good_events)
> UPDATE orders AS t1
SET order_status = 'returned'
WHERE EXISTS (SELECT oid FROM returned_orders WHERE t1.oid = oid)
> UPDATE events
SET category = 'undefined'
WHERE category NOT IN (SELECT category FROM events2 WHERE date > '2001-01-01')
> UPDATE events
SET ignored = DEFAULT
WHERE eventType = 'unknown'