UPDATE - Amazon Redshift

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 beberapa kolom tabel ketika suatu kondisi terpenuhi.

catatan

Ukuran maksimum untuk satu SQL pernyataan adalah 16 MB.

Sintaks

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

Parameter

Klausul WITH

Klausa opsional yang menentukan satu atau lebih. common-table-expressions Lihat DENGAN klausa.

table_name

Meja sementara atau persisten. Hanya pemilik tabel atau pengguna dengan UPDATE hak istimewa di atas tabel yang dapat memperbarui baris. Jika Anda menggunakan FROM klausa atau memilih dari tabel dalam ekspresi atau kondisi, Anda harus memiliki SELECT hak istimewa 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 hanya bisa dibaca. Anda tidak dapat tabel UPDATE eksternal.

alias

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

SETkolom =

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 CREATE TABLE pernyataan.

FROMtablelist

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

WHEREkondisi

Klausa opsional yang membatasi pembaruan ke baris yang cocok dengan kondisi. Ketika kondisi kembalitrue, SET kolom 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

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 FROM klausa UPDATE pernyataan; mereka mengembalikan kesalahan berikut:

ERROR: Target table must be part of an equijoin predicate

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

Jika UPDATE pernyataan Anda memerlukan self-join ke tabel target, Anda perlu menentukan kondisi gabungan, serta kriteria WHERE klausa 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.

UPDATEkueri 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.

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