Pernyataan pembaruan PartiQL untuk DynamoDB - Amazon DynamoDB

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

Pernyataan pembaruan PartiQL untuk DynamoDB

Gunakan pernyataan UPDATE untuk mengubah nilai dari satu atribut atau lebih dalam item dalam tabel Amazon DynamoDB.

catatan

Anda hanya dapat memperbarui satu item pada satu waktu; Anda tidak dapat mengeluarkan pernyataan DynamoDB PartiQL tunggal yang memperbarui beberapa item. Untuk informasi tentang memperbarui beberapa item, lihat Melakukan transaksi dengan PartiQL untuk DynamoDB atau Menjalankan operasi batch dengan PartiQL untuk DynamoDB.

Sintaks

UPDATE table [SET | REMOVE] path [= data] […] WHERE condition [RETURNING returnvalues] <returnvalues> ::= [ALL OLD | MODIFIED OLD | ALL NEW | MODIFIED NEW] *

Parameter

tabel

(Diperlukan) Tabel yang berisi data yang akan diubah.

path

(Diperlukan) Nama atribut atau jalur dokumen yang akan dibuat atau diubah.

data

(Diperlukan) Nilai atribut atau hasil operasi.

Operasi yang didukung untuk digunakan bersama SET:

  • LIST_APPEND: menambahkan nilai ke jenis daftar.

  • SET_ADD: menambahkan nilai ke set angka atau string.

  • SET_DELETE: menghapus nilai dari set angka atau string.

ketentuan

(Diperlukan) Kriteria pemilihan untuk item yang akan diubah. Syarat ini harus diselesaikan untuk satu nilai kunci primer.

returnvalues

(Opsional) Gunakan returnvalues jika Anda ingin mendapatkan atribut item seperti yang muncul sebelum atau setelah diperbarui. Nilai yang valid adalah:

  • ALL OLD *- Mengembalikan semua atribut item, saat atribut item tersebut muncul sebelum operasi pembaruan.

  • MODIFIED OLD *- Mengembalikan hanya atribut yang diperbarui, saat atribut item tersebut muncul sebelum operasi pembaruan.

  • ALL NEW *- Mengembalikan semua atribut item, seperti yang muncul setelah operasi pembaruan.

  • MODIFIED NEW *- Hanya mengembalikan atribut yang diperbarui, seperti yang muncul setelah operasi UpdateItem.

Nilai yang dikembalikan

Pernyataan ini tidak mengembalikan nilai kecuali parameter returnvalues ditentukan.

catatan

Jika klausul WHERE pernyataan UPDATE tidak dinilai true untuk item apa pun dalam tabel DynamoDB, ConditionalCheckFailedException akan dikembalikan.

Contoh

Memperbarui nilai atribut dalam item yang sudah ada. Jika atribut tersebut tidak ada, atribut tersebut akan dibuat.

Kueri berikut memperbarui item dalam tabel "Music" dengan menambahkan atribut dari nomor jenis (AwardsWon) dan atribut dari jenis peta (AwardDetail).

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

Anda dapat menambahkan RETURNING ALL OLD * untuk mengembalikan atribut seperti yang muncul sebelum operasi Update.

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL OLD *

Ini akan menghasilkan hal berikut:

{ "Items": [ { "Artist": { "S": "Acme Band" }, "SongTitle": { "S": "PartiQL Rocks" } } ] }

Anda dapat menambahkan RETURNING ALL NEW * untuk mengembalikan atribut seperti yang muncul setelah operasi Update.

UPDATE "Music" SET AwardsWon=1 SET AwardDetail={'Grammys':[2020, 2018]} WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks' RETURNING ALL NEW *

Ini akan menghasilkan hal berikut:

{ "Items": [ { "AwardDetail": { "M": { "Grammys": { "L": [ { "N": "2020" }, { "N": "2018" } ] } } }, "AwardsWon": { "N": "1" } } ] }

Kueri berikut memperbarui item dalam tabel "Music" dengan menambahkan ke daftar AwardDetail.Grammys.

UPDATE "Music" SET AwardDetail.Grammys =list_append(AwardDetail.Grammys,[2016]) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

Kueri berikut memperbarui item dalam tabel "Music" dengan menghapus dari daftar AwardDetail.Grammys.

UPDATE "Music" REMOVE AwardDetail.Grammys[2] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

Kueri berikut memperbarui item dalam tabel "Music" dengan menambahkan BillBoard ke peta AwardDetail.

UPDATE "Music" SET AwardDetail.BillBoard=[2020] WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

Kueri berikut memperbarui item dalam tabel "Music" dengan menambahkan atribut set string BandMembers.

UPDATE "Music" SET BandMembers =<<'member1', 'member2'>> WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'

Kueri berikut memperbarui item dalam tabel "Music" dengan menambahkan newbandmember ke set string BandMembers.

UPDATE "Music" SET BandMembers =set_add(BandMembers, <<'newbandmember'>>) WHERE Artist='Acme Band' AND SongTitle='PartiQL Rocks'