View a markdown version of this page

UPDATE - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

UPDATE

Memperbarui nilai dalam satu atau lebih kolom tabel ketika suatu kondisi terpenuhi.

catatan

Ukuran maksimum untuk satu pernyataan SQL adalah 16 MB.

Sintaksis

[ WITH [RECURSIVE] common_table_expression [, common_table_expression , ...] ] UPDATE table_name [ [ AS ] alias ] SET column = { expression | DEFAULT } [,...] [ FROM fromlist ] [ WHERE condition ]

Parameter

DENGAN klausa

Klausa opsional yang menentukan satu atau lebih ekspresi tab el-umum. Lihat DENGAN klausa.

table_name

Tabel sementara atau persisten. Hanya pemilik tabel atau pengguna dengan hak istimewa UPDATE pada tabel yang dapat memperbarui baris. Jika Anda menggunakan klausa FROM atau memilih dari tabel dalam ekspresi atau kondisi, Anda harus memiliki hak istimewa SELECT pada tabel tersebut. Anda tidak dapat memberikan tabel alias di sini; namun, Anda dapat menentukan alias dalam klausa FROM.

catatan

Tabel eksternal Amazon Redshift Spectrum bersifat read-only. Anda tidak dapat MEMPERBARUI tabel eksternal.

alias

Nama alternatif sementara untuk tabel target. Alias bersifat opsional. Kata kunci AS selalu opsional.

SET kolom =

Satu atau lebih kolom yang ingin Anda modifikasi. Kolom yang tidak terdaftar mempertahankan nilainya saat ini. Jangan sertakan nama tabel dalam spesifikasi kolom target. Misalnya, UPDATE tab SET tab.col = 1 tidak valid.

ekspresi

Ekspresi yang mendefinisikan nilai baru untuk kolom yang ditentukan.

DEFAULT

Memperbarui kolom dengan nilai default yang ditetapkan ke kolom dalam pernyataan CREATE TABLE.

DARI daftar tabel

Anda dapat memperbarui tabel dengan mereferensikan informasi di tabel lain. Buat daftar tabel lain ini dalam klausa FROM atau gunakan subquery sebagai bagian dari kondisi WHERE. Tabel yang tercantum dalam klausa FROM dapat memiliki alias. Jika Anda perlu menyertakan tabel target pernyataan UPDATE dalam daftar, gunakan alias.

Kondisi WHERE

Klausa opsional yang membatasi pembaruan ke baris yang cocok dengan suatu kondisi. Ketika kondisi kembalitrue, kolom SET yang ditentukan diperbarui. Kondisi tersebut dapat berupa predikat sederhana pada kolom atau kondisi berdasarkan hasil subquery.

Anda dapat memberi nama tabel apa pun di subquery, termasuk tabel target untuk UPDATE.

Catatan penggunaan

Setelah memperbarui sejumlah besar baris dalam tabel:

  • Vakum meja untuk merebut kembali ruang penyimpanan dan mengurutkan ulang baris.

  • Analisis tabel untuk memperbarui statistik untuk perencana kueri.

Gabungan luar kiri, kanan, dan penuh tidak didukung dalam klausa FROM dari pernyataan UPDATE; mereka mengembalikan kesalahan berikut:

ERROR: Target table must be part of an equijoin predicate

Jika Anda perlu menentukan gabungan luar, gunakan subquery dalam klausa WHERE dari pernyataan UPDATE.

Jika pernyataan UPDATE Anda memerlukan self-join ke tabel target, Anda perlu menentukan kondisi gabungan, serta kriteria klausa WHERE yang memenuhi syarat baris untuk operasi pembaruan. Secara umum, ketika tabel target bergabung dengan dirinya sendiri atau tabel lain, praktik terbaik adalah menggunakan subkueri yang secara jelas memisahkan kondisi gabungan dari kriteria yang memenuhi syarat baris untuk pembaruan.

Kueri UPDATE dengan beberapa kecocokan per baris menimbulkan kesalahan saat parameter konfigurasi error_on_nondeterministic_update disetel ke true. Untuk informasi selengkapnya, lihat error_pada_pembaruan_nondeterministik.

Anda dapat memperbarui kolom GENERATED BY DEFAULT AS IDENTITY. Kolom yang didefinisikan sebagai GENERATED BY DEFAULT AS IDENTITY dapat diperbarui dengan nilai yang Anda berikan. Untuk informasi selengkapnya, lihat GENERATED BY DEFAULT AS IDENTITY.