All Products
Search
Document Center

Tablestore:Perbarui baris

Last Updated:Aug 06, 2026

Gunakan Tablestore SDK untuk Java untuk menambahkan, mengubah, atau menghapus kolom atribut dalam suatu baris yang diidentifikasi oleh kunci primernya secara lengkap.

Prasyarat

Pasang Tablestore SDK untuk Java dan inisialisasi klien.

Deskripsi

Panggil updateRow untuk memperbarui baris yang diidentifikasi oleh kunci primernya secara lengkap. Anda dapat menambahkan atau mengubah kolom atribut, menghapus versi tertentu atau semua versi dari suatu kolom, serta menggunakan penghitung atomik.

public UpdateRowResponse updateRow(UpdateRowRequest updateRowRequest) throws TableStoreException, ClientException

Contoh berikut memperbarui baris row1 dalam tabel update_row_demo, dengan mengatur kolom atribut col1 menjadi changed_val1.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
rowUpdateChange.put("col1", ColumnValue.fromString("changed_val1"));

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Parameter

UpdateRowRequest berisi parameter berikut.

Name

Type

Description

rowChange (required)

RowUpdateChange

Konfigurasi untuk memperbarui baris.

transactionId (optional)

String

ID transaksi lokal. Tetapkan parameter ini hanya saat Anda memperbarui data dalam transaksi lokal.

Untuk informasi tentang cara memperoleh dan menggunakan ID tersebut, lihat Use local transactions.

Row change

rowChange bertipe RowUpdateChange dan berisi parameter berikut.

Name

Type

Description

tableName (required)

String

Nama tabel.

primaryKey (required)

PrimaryKey

Kunci primer baris. Tentukan semua kolom kunci primer dalam urutan yang sama dan dengan tipe yang sama seperti skema tabel. Kolom kunci primer mendukung tipe STRING, INTEGER, dan BINARY.

columnsToUpdate (required)

List<Pair<Column, RowUpdateChange.Type>>

Perubahan kolom atribut. Panggil put, deleteColumn, deleteColumns, atau increment untuk menambahkan perubahan.

condition (optional)

Condition

Kondisi pembaruan. Secara default, Tablestore tidak memeriksa apakah baris tersebut ada.

Untuk informasi tentang cara mengonfigurasi kondisi, lihat Use conditional updates.

returnType (optional)

ReturnType

Tipe nilai kembali. Nilai default-nya adalah RT_NONE. Untuk penghitung atomik, atur parameter ini ke RT_AFTER_MODIFY agar mengembalikan nilai kolom yang diperbarui.

Untuk informasi tentang cara mengonfigurasi penghitung atomik, lihat Use atomic counters.

returnColumnNames (optional)

Set<String>

Kolom atribut yang nilai terbarunya ingin Anda kembalikan. Parameter ini hanya berlaku untuk penghitung atomik.

Metode perubahan kolom atribut

Panggil metode berikut untuk menambahkan perubahan ke columnsToUpdate.

  • put: Menambahkan kolom atribut atau menulis versi baru. Anda dapat menentukan nomor versi data.

  • deleteColumn: Menghapus versi tertentu dari kolom atribut.

  • deleteColumns: Menghapus semua versi dari kolom atribut.

  • increment: Secara atomik menambahkan nilai kolom atribut bertipe INTEGER.

Respons

UpdateRowResponse berisi bidang spesifik operasi berikut.

Field

Type

Description

row

Row

Kolom atribut yang diperbarui, diperoleh dengan memanggil getRow. Bidang ini dikembalikan hanya jika returnType diatur ke RT_AFTER_MODIFY.

Skenario

Menulis kolom atribut dengan nomor versi tertentu

Berikan argumen ketiga ke put untuk menentukan nomor versi (timestamp dalam milidetik) pada kolom atribut. Pendekatan ini berguna untuk mengarsipkan nilai historis yang dikaitkan dengan waktu bisnis.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Tentukan nomor versi (timestamp dalam milidetik) sebagai argumen ketiga.
long version = System.currentTimeMillis();
rowUpdateChange.put("col2", ColumnValue.fromString("val2"), version);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Menghapus versi tertentu dari kolom atribut

Gunakan deleteColumn untuk menghapus satu versi kolom atribut sambil mempertahankan versi lainnya.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Hapus nilai col2 pada versi tertentu (timestamp dalam milidetik).
rowUpdateChange.deleteColumn("col2", 1747893563831L);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Menghapus seluruh kolom atribut

Gunakan deleteColumns untuk menghapus semua versi kolom atribut dalam satu operasi.

String tableName = "update_row_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowUpdateChange rowUpdateChange = new RowUpdateChange(tableName, primaryKey);
// Hapus semua versi dari kolom atribut col2.
rowUpdateChange.deleteColumns("col2");

client.updateRow(new UpdateRowRequest(rowUpdateChange));