Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

UpdateItem

Mode fokus
UpdateItem - Amazon DynamoDB

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

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

penting

This section refers to API version 2011-12-05, which is deprecated and should not be used for new applications.

Untuk dokumentasi tentang level rendah saat iniAPI, lihat Referensi Amazon DynamoDB API.

Deskripsi

Mengedit atribut item yang ada. Anda dapat melakukan pembaruan bersyarat (memasukkan pasangan nama-nilai atribut baru jika tidak ada, atau mengganti pasangan nama-nilai yang ada jika memiliki nilai atribut tertentu yang diharapkan).

catatan

Anda tidak dapat memperbarui atribut kunci utama menggunakan UpdateItem. Sebagai gantinya, hapus item dan gunakan PutItem untuk membuat item baru dengan atribut baru.

UpdateItem Operasi mencakup Action parameter, yang mendefinisikan cara melakukan pembaruan. Anda dapat menempatkan, menghapus, atau menambahkan nilai atribut.

Nilai atribut tidak boleh null; atribut jenis string dan biner harus memiliki panjang lebih dari nol; dan atribut jenis set tidak boleh kosong. Permintaan dengan nilai kosong akan ditolak dengan ValidationException.

Jika item yang ada memiliki kunci primer yang ditentukan:

  • PUT— Menambahkan atribut yang ditentukan. Jika sudah ada, atribut akan digantikan oleh nilai baru.

  • DELETE— Jika tidak ada nilai yang ditentukan, ini menghapus atribut dan nilainya. Jika suatu set nilai ditentukan, nilai-nilai dalam set yang ditentukan dihapus dari set lama. Jadi, jika nilai atribut berisi [a,b,c] dan tindakan menghapus berisi [a,c], nilai atribut akhir adalah [b]. Jenis nilai yang ditentukan harus sesuai dengan jenis nilai yang ada. Menentukan suatu set kosong tidak valid.

  • ADD— Hanya gunakan tindakan tambah untuk angka atau jika atribut target adalah satu set (termasuk set string). ADDtidak berfungsi jika atribut target adalah nilai string tunggal atau nilai biner skalar. Nilai yang ditentukan ditambahkan ke nilai numerik (menambah atau mengurangi nilai numerik yang ada) atau ditambahkan sebagai nilai tambahan dalam suatu set string. Jika suatu set nilai ditentukan, nilai-nilai ditambahkan ke set yang ada. Misalnya jika set asli adalah [1,2] dan nilai yang disediakan adalah [3], maka setelah operasi add, set adalah [1,2,3], bukan [4,5]. Terjadi kesalahan jika tindakan Add ditentukan untuk atribut set dan jenis atribut yang ditentukan tidak cocok dengan jenis set yang ada.

    Jika Anda menggunakan ADD untuk atribut yang tidak ada, atribut dan nilainya ditambahkan ke item.

Jika tidak ada item yang cocok dengan kunci primer yang ditentukan:

  • PUT— Membuat item baru dengan kunci primer yang ditentukan. Lalu menambahkan atribut yang ditentukan.

  • DELETE- Tidak ada yang terjadi.

  • ADD— Membuat item dengan kunci utama dan nomor yang disediakan (atau set angka) untuk nilai atribut. Tidak berlaku untuk jenis string atau biner.

catatan

Jika Anda menggunakan ADD untuk menambah atau mengurangi nilai angka untuk item yang tidak ada sebelum pembaruan, DynamoDB menggunakan 0 sebagai nilai awal. Selain itu, jika Anda memperbarui item menggunakan ADD guna menambah atau mengurangi nilai angka untuk atribut yang tidak ada sebelum pembaruan (tetapi item ada), DynamoDB menggunakan 0 sebagai nilai awal. Sebagai contoh, Anda menggunakan ADD untuk menambahkan +3 ke atribut yang tidak ada sebelum pembaruan. DynamoDB menggunakan 0 sebagai nilai awal, dan nilai setelah pembaruan adalah 3.

Untuk informasi lebih lanjut tentang penggunaan operasi ini, lihat Bekerja dengan item dan atribut di DynamoDB.

Permintaan

Sintaks

// This header is abbreviated. // For a sample of a complete header, see DynamoDB tingkat rendah API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.UpdateItem content-type: application/x-amz-json-1.0 {"TableName":"Table1", "Key": {"HashKeyElement":{"S":"AttributeValue1"}, "RangeKeyElement":{"N":"AttributeValue2"}}, "AttributeUpdates":{"AttributeName3":{"Value":{"S":"AttributeValue3_New"},"Action":"PUT"}}, "Expected":{"AttributeName3":{"Value":{"S":"AttributeValue3_Current"}}}, "ReturnValues":"ReturnValuesConstant" }
Nama Deskripsi Wajib
TableName

Nama tabel yang berisi item untuk diperbarui.

Jenis: String

Ya
Key

Kunci primer yang menentukan item. Untuk informasi selengkapnya tentang kunci primer, lihat Kunci primer.

Jenis: Peta HashKeyElement ke nilainya dan RangeKeyElement ke nilainya.

Ya
AttributeUpdates

Peta nama atribut ke nilai baru dan tindakan baru untuk diperbarui. Nama atribut menentukan atribut untuk dimodifikasi, dan tidak dapat berisi atribut kunci primer apa pun.

Jenis: Peta nama atribut, nilai, dan tindakan untuk pembaruan atribut.

AttributeUpdates:Action

Menentukan cara melakukan pembaruan. Kemungkinan nilai: PUT (default), ADD atau DELETE. Semantik dijelaskan dalam deskripsi. UpdateItem

Tipe: String

Default: PUT

Tidak
Expected

Menunjuk atribut untuk pembaruan bersyarat. Parameter Expected memungkinkan Anda untuk memberikan nama atribut, dan apakah DynamoDB harus memeriksa keberadaan nilai atribut; atau apakah nilai atribut ada dan memiliki nilai tertentu sebelum mengubahnya.

Jenis: Peta nama atribut.

Tidak
Expected:AttributeName Nama atribut untuk penempatan bersyarat.

Jenis: String

Tidak
Expected:AttributeName: ExpectedAttributeValue Gunakan parameter ini untuk menentukan apakah nilai sudah ada atau belum untuk pasangan nama-nilai atribut.

JSONNotasi berikut memperbarui item jika atribut “Warna” belum ada untuk item tersebut:

"Expected" : {"Color":{"Exists":false}}

JSONNotasi berikut memeriksa untuk melihat apakah atribut dengan nama “Warna” memiliki nilai “Kuning” yang ada sebelum memperbarui item:

"Expected" : {"Color":{"Exists":true},{"Value":{"S":"Yellow"}}}

Secara default, jika Anda menggunakan parameter Expected dan menyediakan Value, DynamoDB mengasumsikan bahwa atribut ada dan memiliki nilai terkini untuk diganti. Jadi Anda tidak perlu menentukan {"Exists":true}, karena hal tersebut sudah tersirat. Anda dapat mempersingkat permintaan untuk:

"Expected" : {"Color":{"Value":{"S":"Yellow"}}}
catatan

Jika Anda menentukan {"Exists":true} tanpa nilai atribut untuk diperiksa, DynamoDB mengembalikan kesalahan.

Tidak
ReturnValues

Gunakan parameter ini jika Anda ingin mendapatkan pasangan nama-nilai atribut sebelum pasangan tersebut diperbarui dengan permintaan UpdateItem. Nilai parameter yang memungkinkan adalah NONE (default) atau ALL_OLD, UPDATED_OLD, ALL_NEW, atau UPDATED_NEW. Jika ALL_OLD ditentukan, dan UpdateItem menimpa pasangan nama-nilai atribut, isi dari item lama akan dikembalikan. Jika parameter ini tidak tersedia atau NONE, tidak ada yang dikembalikan. Jika ALL_NEW ditentukan, semua atribut versi baru dari item tersebut akan dikembalikan. Jika UPDATED_NEW ditentukan, versi baru dari hanya atribut yang diperbarui akan dikembalikan.

Jenis: String

Tidak

Respons

Sintaks

Contoh sintaksis berikut mengasumsikan permintaan ditentukan dalam parameter ReturnValues dari ALL_OLD; jika tidak, respons hanya memiliki elemen ConsumedCapacityUnits.

HTTP/1.1 200 x-amzn-RequestId: 8966d095-71e9-11e0-a498-71d736f27375 content-type: application/x-amz-json-1.0 content-length: 140 {"Attributes":{ "AttributeName1":{"S":"AttributeValue1"}, "AttributeName2":{"S":"AttributeValue2"}, "AttributeName3":{"S":"AttributeValue3"}, "AttributeName5":{"B":"dmFsdWU="} }, "ConsumedCapacityUnits":1 }
Nama Deskripsi
Attributes

Sebuah peta pasangan nama-nilai atribut, tetapi hanya jika parameter ReturnValues ditentukan sebagai sesuatu selain NONE dalam permintaan.

Jenis: Peta pasangan nama-nilai atribut.

ConsumedCapacityUnits

Jumlah unit kapasitas tulis yang digunakan dalam operasi. Nilai ini menunjukkan jumlah yang diterapkan pada throughput yang disediakan. Untuk informasi selengkapnya, lihat DynamoDB menyediakan mode kapasitas.

Jenis: Angka

Kesalahan khusus

Kesalahan Deskripsi
ConditionalCheckFailedException Pemeriksaan bersyarat gagal. Nilai atribut (“+ name +”) adalah (“+ value +”) tetapi diharapkan (“+ expValue +”)
ResourceNotFoundExceptions Item atau atribut yang ditentukan tidak ditemukan.

Contoh

Untuk contoh menggunakan AWS SDK, lihatBekerja dengan item dan atribut di DynamoDB.

Permintaan sampel

// This header is abbreviated. For a sample of a complete header, see DynamoDB tingkat rendah API. POST / HTTP/1.1 x-amz-target: DynamoDB_20111205.UpdateItem content-type: application/x-amz-json-1.0 {"TableName":"comp5", "Key": {"HashKeyElement":{"S":"Julie"},"RangeKeyElement":{"N":"1307654350"}}, "AttributeUpdates": {"status":{"Value":{"S":"online"}, "Action":"PUT"}}, "Expected":{"status":{"Value":{"S":"offline"}}}, "ReturnValues":"ALL_NEW" }

Respons sampel

HTTP/1.1 200 OK x-amzn-RequestId: 5IMHO7F01Q9P7Q6QMKMMI3R3QRVV4KQNSO5AEMVJF66Q9ASUAAJG content-type: application/x-amz-json-1.0 content-length: 121 Date: Fri, 26 Aug 2011 21:05:00 GMT {"Attributes": {"friends":{"SS":["Lynda, Aaron"]}, "status":{"S":"online"}, "time":{"N":"1307654350"}, "user":{"S":"Julie"}}, "ConsumedCapacityUnits":1 }

Topik berikutnya:

UpdateTable

Topik sebelumnya:

Scan
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.