Memperbarui data pada sebuah baris.
Jika baris yang ditentukan tidak ada, baris baru akan dimasukkan. Jika baris tersebut sudah ada, nilai kolom yang ditentukan akan ditambahkan, dimodifikasi, atau dihapus sesuai dengan permintaan.
Sintaks permintaan
message UpdateRowRequest {
required string table_name = 1;
required bytes row_change = 2;
required Condition condition = 3;
optional ReturnContent return_content = 4;
optional string transaction_id = 5;
}Parameter | Tipe | Diperlukan | Deskripsi |
table_name | string | Ya | Nama tabel yang datanya ingin Anda perbarui. |
row_change | bytes | Ya | Data yang ingin Anda perbarui, termasuk kolom kunci utama dan kolom atribut. Data tersebut dikodekan dalam format PlainBuffer. Untuk informasi lebih lanjut, lihat PlainBuffer. Tablestore menambahkan, memodifikasi, atau menghapus nilai pada kolom atribut tertentu dari baris berdasarkan nilai UpdateType di row_change. Kolom yang ada di baris tetapi tidak ditentukan oleh row_change tidak terpengaruh. Nilai valid dari UpdateType:
|
condition | Ya | Menentukan apakah akan melakukan pemeriksaan keberadaan baris sebelum data diperbarui. Nilai valid:
| |
return_content | Tidak | Tipe data setelah baris berhasil ditulis. Hanya kunci utama yang dapat dikembalikan. Parameter ini terutama digunakan oleh fitur kolom kunci utama auto-increment. | |
transaction_id | string | Tidak | ID transaksi lokal. Parameter ini diperlukan jika Anda menggunakan fitur transaksi lokal untuk membaca data. |
Sintaks respons
message UpdateRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}Parameter | Tipe | Deskripsi |
consumed | Jumlah unit kapasitas (CUs) yang dikonsumsi oleh operasi. Untuk informasi lebih lanjut, lihat Konsumsi CU. | |
row | bytes | Data yang dikembalikan jika Anda menentukan nilai untuk return_content. Jika Anda tidak menentukan nilai untuk return_content atau tidak ada nilai pengembalian, NULL dikembalikan. Data yang dikembalikan dikodekan dalam format PlainBuffer. Untuk informasi lebih lanjut tentang PlainBuffer, lihat PlainBuffer. |
Menggunakan Tablestore SDKs
Anda dapat menggunakan Tablestore SDK berikut untuk memperbarui satu baris data:
Tablestore SDK for Java: Perbarui satu baris data
Tablestore SDK for Go: Perbarui satu baris data
Tablestore SDK for Python: Perbarui satu baris data
Tablestore SDK for Node.js: Perbarui satu baris data
Tablestore SDK for .NET: Perbarui satu baris data
Tablestore SDK for PHP: Perbarui satu baris data
Konsumsi CU
Jika baris yang ingin diperbarui tidak ada, jumlah CUs yang dikonsumsi bervariasi berdasarkan nilai parameter condition.
Jika nilai parameter condition adalah IGNORE, jumlah write CUs yang dikonsumsi dibulatkan ke atas dari hasil perhitungan rumus berikut: Jumlah write CUs yang dikonsumsi = (Ukuran data di semua kolom kunci utama baris + Ukuran data di kolom atribut yang ingin diperbarui)/4 KB. Jika UpdateRow mencakup kolom atribut yang ingin dihapus, panjang nama kolom dihitung sebagai ukuran data di kolom tersebut.
Jika nilai parameter condition adalah EXPECT_EXIST, data gagal ditulis ke baris. Satu write CU dan satu read CU dikonsumsi.
Jika baris yang ingin diperbarui sudah ada, jumlah CUs yang dikonsumsi bervariasi berdasarkan nilai parameter condition.
Jika nilai parameter condition adalah IGNORE, jumlah write CUs yang dikonsumsi dibulatkan ke atas dari hasil perhitungan rumus berikut: Jumlah write CUs yang dikonsumsi = (Ukuran data di semua kolom kunci utama baris + Ukuran data di kolom atribut yang ingin diperbarui)/4 KB. Jika UpdateRow mencakup kolom atribut yang ingin dihapus, panjang nama kolom dihitung sebagai ukuran data di kolom tersebut.
Jika nilai parameter condition adalah EXPECT_EXIST, baik write maupun read CUs dikonsumsi. Jumlah write CUs yang dikonsumsi dihitung menggunakan rumus yang digunakan ketika nilai parameter condition adalah IGNORE. Jumlah read CUs yang dikonsumsi dibulatkan ke atas dari nilai yang dihitung menggunakan rumus berikut: Jumlah read CUs yang dikonsumsi = Ukuran data di kolom kunci utama baris/4 KB.
Untuk informasi lebih lanjut tentang cara menghitung ukuran data, lihat Ikhtisar Penagihan.
Jika permintaan habis waktu dan hasilnya tidak terdefinisi, CUs mungkin dikonsumsi atau tidak.
Jika kode status HTTP 5xx dikembalikan, terjadi kesalahan internal. Dalam hal ini, operasi tidak mengonsumsi CUs. Jika kesalahan lain dikembalikan, satu write CU dan satu read CU dikonsumsi.