Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AttributeUpdates (warisan)
catatan
Kami menyarankan agar Anda menggunakan parameter ekspresi yang baru, bukan parameter warisan ini, jika memungkinkan. Untuk informasi selengkapnya, lihat Menggunakan ekspresi di DynamoDB. Untuk informasi spesifik tentang parameter baru sebagai pengganti untuk yang satu ini, gunakan UpdateExpressionsebagai gantinya..
Dalam operasi UpdateItem, parameter bersyarat warisan AttributeUpdates berisi nama-nama atribut yang akan dimodifikasi, tindakan yang akan dilakukan pada setiap atribut, dan nilai baru untuk setiap atribut. Jika Anda memperbarui atribut yang merupakan atribut kunci indeks untuk setiap indeks pada tabel tersebut, jenis atribut harus sesuai dengan jenis kunci indeks yang didefinisikan dalam AttributesDefinition pada deskripsi tabel. Anda dapat menggunakan UpdateItem untuk memperbarui setiap atribut non-kunci.
Nilai atribut tidak boleh nol. Atribut jenis Biner dan String harus memiliki panjang lebih dari nol. Atribut jenis set tidak boleh kosong. Permintaan dengan nilai kosong akan ditolak dengan pengecualian ValidationException.
Setiap elemen AttributeUpdates terdiri dari nama atribut untuk dimodifikasi, beserta hal berikut:
-
Value- Nilai baru, jika berlaku, untuk atribut ini. -
Action- Sebuah nilai yang menentukan cara melakukan pembaruan. Tindakan ini hanya berlaku untuk atribut yang ada yang jenis datanya adalah Angka atau sebuah set; jangan gunakanADDuntuk jenis data lainnya.Jika item dengan kunci primer tertentu ditemukan dalam tabel, nilai berikut melakukan tindakan berikut:
-
PUT- Menambahkan atribut tertentu pada item. Jika sudah ada, atribut akan digantikan oleh nilai baru. -
DELETE- Menghapus atribut dan nilainya, jika tidak ada nilai yang ditentukan untukDELETE. Jenis data dari nilai yang ditentukan harus sesuai dengan jenis data dari nilai yang ada.Jika suatu set nilai ditentukan, nilai-nilai tersebut dikurangi dari set lama. Sebagai contoh, jika nilai atribut adalah set
[a,b,c]dan tindakanDELETEmenentukan[a,c], nilai atribut akhir adalah[b]. Menentukan satu set kosong adalah kesalahan. -
ADD- Menambahkan nilai yang ditentukan untuk item, jika atribut belum ada. Jika atribut tidak ada, perilakuADDbergantung pada jenis data dari atribut:-
Jika atribut yang ada berupa angka, dan jika
Valuejuga berupa angka,Valuesecara matematis ditambahkan ke atribut yang ada. JikaValueadalah angka negatif, nilai tersebut dikurangi dari atribut yang ada.catatan
Jika Anda menggunakan
ADDuntuk menambah atau mengurangi nilai angka untuk item yang tidak ada sebelum pembaruan, DynamoDB menggunakan 0 sebagai nilai awal.Begitu pun halnya, jika Anda menggunakan
ADDuntuk item yang ada untuk menambah atau mengurangi nilai atribut yang tidak ada sebelum pembaruan, DynamoDB menggunakan0sebagai nilai awal. Misalnya, anggap item yang ingin Anda perbarui tidak memiliki atribut bernama itemcount, tetapi Anda memutuskan untuk tetapADDangka3ke atribut ini. DynamoDB akan membuat atribut itemcount, mengatur nilai awalnya ke0, dan akhirnya menambahkan3ke nilai tersebut. Hasilnya akan menjadi atribut itemcount baru, dengan nilai3. -
Jika jenis data yang ada merupakan sebuah set, dan jika
Valuejuga merupakan sebuah set,Valueditambahkan ke set yang ada. Misalnya, jika nilai atribut adalah set[1,2], dan tindakanADDmenentukan[3], nilai atribut akhir adalah[1,2,3]. Terjadi kesalahan jika tindakanADDditentukan untuk atribut set dan jenis atribut yang ditentukan tidak cocok dengan jenis set yang ada.Kedua set harus memiliki jenis data primitif yang sama. Sebagai contoh, jika jenis data yang ada adalah set string,
Valuejuga harus berupa set string.
-
Jika item dengan kunci yang ditentukan ditemukan dalam tabel, nilai berikut melakukan tindakan berikut:
-
PUT- Menyebabkan DynamoDB membuat item baru dengan kunci primer yang ditentukan, lalu menambahkan atribut. -
DELETE- Tidak terjadi apa-apa, karena atribut tidak dapat dihapus dari item yang tidak ada. Operasi berhasil, tapi DynamoDB tidak membuat item baru. -
ADD- Menyebabkan DynamoDB membuat item dengan kunci primer yang disediakan dan angka (atau set angka) untuk nilai atribut. Satu-satunya jenis data yang diperbolehkan adalah Angka dan Set Angka.
-
Jika Anda memberikan atribut apa pun yang merupakan bagian dari kunci indeks, set data untuk atribut tersebut harus sesuai dengan skema dalam definisi atribut tabel.
Gunakan UpdateExpressionsebagai gantinya - Contoh
Misalkan Anda ingin memodifikasi item dalam tabel Musik. Anda dapat menggunakan UpdateItem permintaan dengan AttributeUpdates parameter, seperti dalam AWS CLI contoh ini:
aws dynamodb update-item \ --table-name Music \ --key '{ "SongTitle": {"S":"Call Me Today"}, "Artist": {"S":"No One You Know"} }' \ --attribute-updates '{ "Genre": { "Action": "PUT", "Value": {"S":"Rock"} } }'
Anda dapat menggunakan UpdateExpression sebagai gantinya:
aws dynamodb update-item \ --table-name Music \ --key '{ "SongTitle": {"S":"Call Me Today"}, "Artist": {"S":"No One You Know"} }' \ --update-expression 'SET Genre = :g' \ --expression-attribute-values '{ ":g": {"S":"Rock"} }'