Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
BERGABUNG MENJADI
Secara kondisional memperbarui, menghapus, atau menyisipkan baris ke dalam tabel Apache Iceberg. Sebuah pernyataan tunggal dapat menggabungkan tindakan pembaruan, menghapus, dan menyisipkan.
catatan
MERGE INTO
bersifat transaksional dan hanya didukung untuk tabel Apache Iceberg di mesin Athena versi 3.
Sinopsis
Untuk memperbarui, menghapus, atau menyisipkan baris secara kondisional dari tabel Iceberg, gunakan sintaks berikut.
MERGE INTO target_table [ [ AS ] target_alias ]
USING { source_table | query } [ [ AS ] source_alias ]
ON search_condition
when_clause
[...]
When_clause
adalah salah satu dari berikut ini:
WHEN MATCHED [ AND condition ] THEN DELETE
WHEN MATCHED [ AND condition ] THEN UPDATE SET ( column = expression [, ...] )
WHEN NOT MATCHED [ AND condition ] THEN INSERT (
column_name
[,column_name
...]) VALUES (expression, ...)
MERGE
mendukung sejumlah WHEN
klausa yang sewenang-wenang dengan kondisi yang berbeda. MATCHED
Klausa kondisi mengeksekusiDELETE
, UPDATE
atau INSERT
operasi dalam WHEN
klausa pertama yang dipilih oleh MATCHED
status dan kondisi kecocokan.
Untuk setiap baris sumber, WHEN
klausa diproses secara berurutan. Hanya WHEN
klausa pencocokan pertama yang dieksekusi. Klausul selanjutnya diabaikan. Kesalahan pengguna muncul ketika satu baris tabel target cocok dengan lebih dari satu baris sumber.
Jika baris sumber tidak cocok dengan WHEN
klausa apa pun dan tidak ada WHEN NOT MATCHED
klausa, baris sumber diabaikan.
Dalam WHEN
klausa yang memiliki UPDATE
operasi, ekspresi nilai kolom dapat merujuk ke bidang apa pun dari target atau sumber. Dalam NOT
MATCHED
kasus ini, INSERT
ekspresi dapat merujuk ke bidang sumber apa pun.
Contoh
Contoh berikut menggabungkan baris dari tabel kedua ke tabel pertama jika baris tidak ada di tabel pertama. Perhatikan bahwa kolom yang tercantum dalam VALUES
klausa harus diawali dengan alias tabel sumber. Kolom target yang tercantum dalam INSERT
klausa tidak boleh diawali.
MERGE INTO iceberg_table_sample as ice1 USING iceberg2_table_sample as ice2 ON ice1.col1 = ice2.col1 WHEN NOT MATCHED THEN INSERT (col1) VALUES (ice2.col1)
Untuk MERGE INTO
contoh lainnya, lihatPerbarui data tabel Gunung Es.