

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

# UPDATE
<a name="r_UPDATE"></a>

**Topics**
+ [Sintaksis](#r_UPDATE-synopsis)
+ [Parameter](#r_UPDATE-parameters)
+ [Catatan penggunaan](#r_UPDATE_usage_notes)
+ [Contoh pernyataan UPDATE](c_Examples_of_UPDATE_statements.md)

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

**catatan**  
Ukuran maksimum untuk satu pernyataan SQL adalah 16 MB.

## Sintaksis
<a name="r_UPDATE-synopsis"></a>

```
[ WITH [RECURSIVE] common_table_expression [, common_table_expression , ...] ]
            UPDATE table_name [ [ AS ] alias ] SET column = { expression | DEFAULT } [,...]

[ FROM fromlist ]
[ WHERE condition ]
```

## Parameter
<a name="r_UPDATE-parameters"></a>

DENGAN klausa  
Klausa opsional yang menentukan satu atau lebih. *common-table-expressions* Lihat [DENGAN klausa](r_WITH_clause.md). 

 *table\_name*   
Meja 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 pilih pada tabel tersebut. Anda tidak dapat memberikan tabel alias di sini; Namun, Anda dapat menentukan alias dalam klausa FROM.   
Tabel eksternal Amazon Redshift Spectrum hanya bisa dibaca. Anda tidak dapat MEMPERBARUI tabel eksternal.

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

*Kolom* SET =   
Satu atau beberapa 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 *tablelist*   
Anda dapat memperbarui tabel dengan mereferensikan informasi di tabel lain. Cantumkan 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 dari pernyataan UPDATE dalam daftar, gunakan alias. 

*Kondisi* DIMANA   
Klausa opsional yang membatasi pembaruan ke baris yang cocok dengan kondisi. Ketika kondisi kembali`true`, kolom SET yang ditentukan diperbarui. Kondisi ini 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
<a name="r_UPDATE_usage_notes"></a>

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 di 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 subquery yang secara jelas memisahkan kondisi gabungan dari kriteria yang memenuhi syarat baris untuk pembaruan. 

Perbarui kueri dengan beberapa kecocokan per baris menimbulkan kesalahan saat parameter konfigurasi `error_on_nondeterministic_update` disetel ke *true*. Untuk informasi selengkapnya, lihat [error\_on\_nondeterministic\_update](r_error_on_nondeterministic_update.md).

Anda dapat memperbarui kolom GENERATED BY DEFAULT AS IDENTITY. Kolom didefinisikan sebagai GENERATED BY DEFAULT AS IDENTITY dapat diperbarui dengan nilai yang Anda berikan. Untuk informasi selengkapnya, lihat [GENERATED BY DEFAULT AS IDENTITY](r_CREATE_TABLE_NEW.md#identity-generated-bydefault-clause). 