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 gunakanADD
untuk 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 tindakanDELETE
menentukan[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, perilakuADD
bergantung pada jenis data dari atribut:-
Jika atribut yang ada berupa angka, dan jika
Value
juga berupa angka,Value
secara matematis ditambahkan ke atribut yang ada. JikaValue
adalah angka negatif, nilai tersebut dikurangi dari atribut yang ada.catatan
Jika Anda menggunakan
ADD
untuk menambah atau mengurangi nilai angka untuk item yang tidak ada sebelum pembaruan, DynamoDB menggunakan 0 sebagai nilai awal.Begitu pun halnya, jika Anda menggunakan
ADD
untuk item yang ada untuk menambah atau mengurangi nilai atribut yang tidak ada sebelum pembaruan, DynamoDB menggunakan0
sebagai nilai awal. Misalnya, anggap item yang ingin Anda perbarui tidak memiliki atribut bernama itemcount, tetapi Anda memutuskan untuk tetapADD
angka3
ke atribut ini. DynamoDB akan membuat atribut itemcount, mengatur nilai awalnya ke0
, dan akhirnya menambahkan3
ke nilai tersebut. Hasilnya akan menjadi atribut itemcount baru, dengan nilai3
. -
Jika jenis data yang ada merupakan sebuah set, dan jika
Value
juga merupakan sebuah set,Value
ditambahkan ke set yang ada. Misalnya, jika nilai atribut adalah set[1,2]
, dan tindakanADD
menentukan[3]
, nilai atribut akhir adalah[1,2,3]
. Terjadi kesalahan jika tindakanADD
ditentukan 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,
Value
juga 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"} }'