AttributeUpdates (warisan) - Amazon DynamoDB

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 gunakan ADD 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 untuk DELETE. 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 tindakan DELETE 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, perilaku ADD 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. Jika Value 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 menggunakan 0 sebagai nilai awal. Misalnya, anggap item yang ingin Anda perbarui tidak memiliki atribut bernama itemcount, tetapi Anda memutuskan untuk tetap ADD angka 3 ke atribut ini. DynamoDB akan membuat atribut itemcount, mengatur nilai awalnya ke 0, dan akhirnya menambahkan 3 ke nilai tersebut. Hasilnya akan menjadi atribut itemcount baru, dengan nilai 3.

      • 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 tindakan ADD menentukan [3], nilai atribut akhir adalah [1,2,3]. Terjadi kesalahan jika tindakan ADD 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"} }'