全部产品
Search
文档中心

Tablestore:UpdateRow

更新时间:Jul 02, 2025

Memperbarui data pada sebuah baris.

Catatan

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:

  • PUT: Nilainya harus merupakan nilai valid dari kolom atribut. Jika kolom yang ditentukan tidak ada, kolom baru akan ditambahkan. Jika kolom yang ditentukan ada, kolom yang ada akan ditimpa.

  • DELETE: Nilainya harus kosong, dan timestamp harus ditentukan. Jenis pembaruan ini menentukan bahwa data versi tertentu dihapus dari kolom.

  • DELETE_ALL: Nilai dan timestamp harus kosong. Jenis pembaruan ini menentukan bahwa data semua versi di kolom dihapus.

    Catatan

    Baris tetap ada meskipun semua kolom atribut dari baris dihapus. Untuk menghapus baris, panggil operasi DeleteRow.

condition

Condition

Ya

Menentukan apakah akan melakukan pemeriksaan keberadaan baris sebelum data diperbarui. Nilai valid:

  • IGNORE (default): Pemeriksaan keberadaan baris tidak dilakukan. Jika Anda menetapkan parameter condition ke IGNORE, operasi tidak terpengaruh terlepas dari apakah baris ada.

  • EXPECT_EXIST: Baris diharapkan ada. Jika baris diharapkan ada tetapi baris tidak ada, baris tidak dapat diperbarui dan kesalahan dikembalikan.

return_content

ReturnContent

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

ConsumedCapacity

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:

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.