Perbedaan antara database relasional (SQL) dan DynamoDB saat memodifikasi data dalam tabel - Amazon DynamoDB

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

Perbedaan antara database relasional (SQL) dan DynamoDB saat memodifikasi data dalam tabel

SQLBahasa menyediakan UPDATE pernyataan untuk memodifikasi data. Amazon DynamoDB menggunakan operasi UpdateItem untuk menyelesaikan tugas yang serupa.

Memodifikasi data dalam tabel dengan SQL

DiSQL, Anda akan menggunakan UPDATE pernyataan untuk memodifikasi satu atau lebih baris. Klausa SET menentukan nilai-nilai baru untuk satu kolom atau lebih, dan klausul WHERE menentukan baris yang dimodifikasi. Berikut adalah contohnya.

UPDATE Music SET RecordLabel = 'Global Records' WHERE Artist = 'No One You Know' AND SongTitle = 'Call Me Today';

Jika tidak ada baris yang cocok dengan klausul WHERE, pernyataan UPDATE tidak berpengaruh.

Memodifikasi data dalam tabel di DynamoDB

Di DynamoDB, Anda dapat menggunakan API DynamoDB atau PartiQL (bahasa kueri yang kompatibel) untuk memodifikasi satu itemSQL. Jika Anda ingin memodifikasi beberapa item, Anda harus menggunakan beberapa operasi.

DynamoDB API

Dengan API DynamoDB, Anda menggunakan operasi untuk memodifikasi UpdateItem satu item.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ExpressionAttributeValues: { ":label": "Global Records" } }

Anda harus menentukan atribut Key item yang akan dimodifikasi dan UpdateExpression untuk menentukan nilai atribut. UpdateItem berperilaku seperti operasi “upsert”. Item diperbarui jika ada di tabel, tetapi jika tidak, item baru ditambahkan (disisipkan).

UpdateItem mendukung tulis bersyarat, di mana operasi hanya berhasil jika ConditionExpression tertentu bernilai true. Misalnya, operasi UpdateItem berikut tidak melakukan pembaruan kecuali jika harga lagu lebih besar dari atau sama dengan 2,00.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET RecordLabel = :label", ConditionExpression: "Price >= :p", ExpressionAttributeValues: { ":label": "Global Records", ":p": 2.00 } }

UpdateItem juga mendukung penghitung atom, atau atribut jenis Number yang dapat ditambahkan atau dikurangi. Penghitung atom serupa dalam banyak hal untuk mengurutkan generator, kolom identitas, atau bidang penambahan otomatis dalam database. SQL

Berikut ini adalah contoh operasi UpdateItem untuk menginisialisasi atribut baru (Play) untuk melacak berapa kali lagu telah diputar.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = :val", ExpressionAttributeValues: { ":val": 0 }, ReturnValues: "UPDATED_NEW" }

Parameter ReturnValues diatur ke UPDATED_NEW, yang mengembalikan nilai-nilai baru dari setiap atribut yang diperbarui. Dalam hal ini, parameter mengembalikan 0 (nol).

Setiap kali seseorang memutar lagu ini, kita dapat menggunakan operasi UpdateItem berikut untuk menambahkan Play sebanyak satu.

{ TableName: "Music", Key: { "Artist":"No One You Know", "SongTitle":"Call Me Today" }, UpdateExpression: "SET Plays = Plays + :incr", ExpressionAttributeValues: { ":incr": 1 }, ReturnValues: "UPDATED_NEW" }
PartiQL for DynamoDB

Dengan PartiQL, Anda menggunakan operasi ExecuteStatement untuk memodifikasi item pada tabel, menggunakan pernyataan Update PartiQL.

Kunci utama untuk tabel ini terdiri dari Artis dan SongTitle. Anda harus menentukan nilai untuk atribut ini.

UPDATE Music SET RecordLabel ='Global Records' WHERE Artist='No One You Know' AND SongTitle='Call Me Today'

Anda juga dapat memodifikasi beberapa bidang sekaligus, seperti pada contoh berikut.

UPDATE Music SET RecordLabel = 'Global Records' SET AwardsWon = 10 WHERE Artist ='No One You Know' AND SongTitle='Call Me Today'

Update juga mendukung penghitung atom, atau atribut jenis Number yang dapat ditambahkan atau dikurangi. Penghitung atom serupa dalam banyak hal untuk mengurutkan generator, kolom identitas, atau bidang penambahan otomatis dalam database. SQL

Berikut ini adalah contoh pernyataan Update untuk menginisialisasi atribut baru (Play) untuk melacak berapa kali lagu telah diputar.

UPDATE Music SET Plays = 0 WHERE Artist='No One You Know' AND SongTitle='Call Me Today'

Setiap kali seseorang memutar lagu ini, kita dapat menggunakan pernyataan Update berikut untuk menambahkan Play sebanyak satu.

UPDATE Music SET Plays = Plays + 1 WHERE Artist='No One You Know' AND SongTitle='Call Me Today'
catatan

Untuk contoh kode menggunakan Update dan ExecuteStatement, lihat Pernyataan pembaruan PartiQL untuk DynamoDB.