Tüm Ürünler
Search
Belge Merkezi

Tablestore:Update a row

Son Güncelleme:Oct 02, 2026

Tam anahtarıyla tanımlanan bir satırdaki nitelik sütunlarını eklemek, değiştirmek veya silmek için Tablestore SDK for Java kullanın.

Önkoşullar

Tablestore SDK for Java yükleyin ve istemciyi başlatın.

Açıklama

Tam anahtarıyla tanımlanan bir satırı güncellemek için updateRow yöntemini çağırın. Nitelik sütunları ekleyebilir veya değiştirebilir, belirli bir sütunun belirtilen veya tüm sürümlerini silebilir ve atomik sayaçları kullanabilirsiniz.

public UpdateRowResponse updateRow(UpdateRowRequest updateRowRequest) throws TableStoreException, ClientException

Aşağıdaki örnekte, update_row_demo veri tablosundaki row1 satırı güncellenir ve col1 nitelik sütunu changed_val1 değerine ayarlanır.

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));

Parametreler

UpdateRowRequest aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


rowChange (gerekli)


RowUpdateChange


transactionId (isteğe bağlı)


String

Yerel işlem kimliği. Bu parametreyi yalnızca yerel bir işlemde verileri güncellerken belirtin.

Kimliğin nasıl elde edileceği ve kullanılacağı hakkında bilgi için bkz. Yerel işlemleri kullanma.

Satır değişikliği

rowChange parametresi RowUpdateChange türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


tableName (gerekli)


String


Tablo adı.


primaryKey (gerekli)


PrimaryKey


Satırın birincil anahtarı. Tüm birincil anahtar sütunlarını tablo şemasıyla aynı sırada ve aynı türlerde belirtin. Birincil anahtar sütunları STRING, INTEGER ve BINARY türlerini destekler.


columnsToUpdate (gerekli)


List<Pair<Column, RowUpdateChange.Type>>


Nitelik sütunu değişiklikleri. Değişiklik eklemek için put, deleteColumn, deleteColumns veya increment yöntemlerini çağırın.


condition (isteğe bağlı)


Condition

Güncelleme koşulu. Varsayılan olarak Tablestore, satırın var olup olmadığını kontrol etmez.

Koşulun nasıl yapılandırılacağı hakkında bilgi için bkz. Koşullu güncellemeleri kullanma.


returnType (isteğe bağlı)


ReturnType

Dönüş türü. Varsayılan değer RT_NONE değeridir. Atomik sayaçlar için, güncellenen sütun değerlerini döndürmek amacıyla bu parametreyi RT_AFTER_MODIFY olarak ayarlayın.

Atomik sayaçların nasıl yapılandırılacağı hakkında bilgi için bkz. Atomik sayaçları kullanma.


returnColumnNames (isteğe bağlı)


Set<String>


Güncellenmiş değerlerini döndürmek istediğiniz nitelik sütunları. Bu parametre yalnızca atomik sayaçlar için geçerlidir.

Nitelik sütunu değiştirme yöntemleri

columnsToUpdate listesine değişiklik eklemek için aşağıdaki yöntemleri çağırın.

  • put: Bir nitelik sütunu ekler veya yeni bir sürüm yazar. Veri sürümü numarasını belirtebilirsiniz.

  • deleteColumn: Bir nitelik sütununun belirtilen sürümünü siler.

  • deleteColumns: Bir nitelik sütununun tüm sürümlerini siler.

  • increment: INTEGER türündeki bir nitelik sütununu atomik olarak artırır.

Yanıt

UpdateRowResponse aşağıdaki işleme özel alanı içerir.


Alan


Tür


Açıklama


row


Row


getRow çağrılarak elde edilen güncellenmiş nitelik sütunları. Bu alan yalnızca returnType parametresi RT_AFTER_MODIFY olarak ayarlandığında döndürülür.

Senaryolar

Belirtilen sürüm numarasıyla nitelik sütunları yazma

Nitelik sütunu için sürüm numarasını (milisaniye cinsinden zaman damgası) belirtmek üzere put yöntemine üçüncü bir bağımsız değişken iletin. Bu yaklaşımı, iş zamanına göre anahtarlanan geçmiş değerleri arşivlemek için kullanın.

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);
// Specify the version number (a millisecond timestamp) as the third argument.
long version = System.currentTimeMillis();
rowUpdateChange.put("col2", ColumnValue.fromString("val2"), version);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Bir nitelik sütununun belirtilen sürümünü silme

Diğer tüm sürümleri korurken bir nitelik sütununun tek bir sürümünü kaldırmak için deleteColumn yöntemini kullanın.

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);
// Delete the col2 value at the specified version (a millisecond timestamp).
rowUpdateChange.deleteColumn("col2", 1747893563831L);

client.updateRow(new UpdateRowRequest(rowUpdateChange));

Tam bir nitelik sütununu silme

Tek bir işlemde bir nitelik sütununun her sürümünü silmek için deleteColumns yöntemini kullanın.

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);
// Delete all versions of the col2 attribute column.
rowUpdateChange.deleteColumns("col2");

client.updateRow(new UpdateRowRequest(rowUpdateChange));