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 |
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: Tipe: String Default: |
Tidak |
Expected
|
Menunjuk atribut untuk pembaruan bersyarat. Parameter 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:
JSONNotasi berikut memeriksa untuk melihat apakah atribut dengan nama “Warna” memiliki nilai “Kuning” yang ada sebelum memperbarui item:
Secara default, jika Anda menggunakan parameter
catatanJika Anda menentukan |
Tidak |
ReturnValues
|
Gunakan parameter ini jika Anda ingin mendapatkan pasangan nama-nilai atribut sebelum pasangan tersebut diperbarui dengan permintaan 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 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
}