Tüm Ürünler
Search
Belge Merkezi

Tablestore:Write a row

Son Güncelleme:Oct 02, 2026

Geniş sütunlu model tablosuna bir satır yazmak veya güncellemek için Tablestore SDK for Java kullanın.

Ön koşullar

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

Açıklama

Birincil anahtarıyla tanımlanan bir satıra öznitelik sütunları yazmak için putRow yöntemini çağırın. Satır zaten varsa Tablestore ilgili öznitelik sütunu sürümlerini ekler veya üzerine yazar. Yazma işleminin gerçekleştirilip gerçekleştirilmeyeceğini denetlemek için condition parametresini kullanabilirsiniz.

public PutRowResponse putRow(PutRowRequest putRowRequest) throws TableStoreException, ClientException

Aşağıdaki örnekte, birincil anahtar sütunu id değeri row1 olarak ayarlanmış ve öznitelik sütunu col1 değeri val1 olarak ayarlanmış bir satır put_row_demo tablosuna yazılır.

String tableName = "put_row_demo";

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

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);
rowPutChange.addColumn("col1", ColumnValue.fromString("val1"));

client.putRow(new PutRowRequest(rowPutChange));

Parametreler

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


Ad


Tür


Açıklama


rowChange (gerekli)


RowPutChange


Satır yazma yapılandırması.


transactionId (isteğe bağlı)


String

Yerel işlem ID'si. Bu parametreyi yalnızca yerel işlem içinde veri yazarken belirtin.

ID'yi nasıl alacağınız ve kullanacağınız hakkında bilgi için bkz. Yerel işlemler kullanma.

Satır değişikliği

rowChange parametresi RowPutChange 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ı. Birincil anahtar sütunlarının adları, sırası ve türleri tablo şemasıyla eşleşmelidir. Birincil anahtar sütunları STRING, INTEGER ve BINARY türlerini destekler. Otomatik artan birincil anahtar sütununu PrimaryKeyValue.AUTO_INCREMENT olarak ayarlayın.


columnsToPut (isteğe bağlı)


List<Column>


Yazılacak öznitelik sütunları. Sütunları tek tek eklemek için addColumn yöntemini birden çok kez çağırın veya birden çok sütunu aynı anda eklemek için addColumns yöntemini çağırın.


condition (isteğe bağlı)


Condition

Yazma koşulu. Varsayılan olarak Tablestore satırın var olup olmadığını kontrol etmez.

Koşul yapılandırması hakkında bilgi için bkz. Koşullu güncellemeler kullanma.


returnType (isteğe bağlı)


ReturnType


Dönüş türü. Varsayılan değer RT_NONE olup birincil anahtar bilgisi döndürülmez. Tam birincil anahtarı döndürmek (genellikle otomatik artan birincil anahtar değerini almak için) için bu parametreyi RT_PK olarak ayarlayın.

Öznitelik sütunları

rowChange.columnsToPut[] dizisindeki her öğe Column türündedir ve aşağıdaki parametreleri içerir.


Ad


Tür


Açıklama


name (gerekli)


String


Öznitelik sütununun adı.


value (gerekli)


ColumnValue


Öznitelik sütununun değeri. Desteklenen türler: STRING, INTEGER, BINARY, DOUBLE ve BOOLEAN.


timestamp (isteğe bağlı)


long


Veri sürüm numarası. Birim: milisaniye. Bu parametreyi belirtmezseniz sunucu değeri oluşturur.

Örnekler

Birden çok öznitelik sütunu yazma

Aşağıdaki örnek, her sütun için addColumn çağrısı yapma ve hazırlanmış bir List<Column> listesini tek çağrıda geçirme yaklaşımlarının her ikisini de gösterir.

String tableName = "put_row_demo";

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

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);

// Option 1: Add columns one at a time with addColumn
rowPutChange.addColumn("name", ColumnValue.fromString("Alice"));
rowPutChange.addColumn("age", ColumnValue.fromLong(30));
rowPutChange.addColumn("active", ColumnValue.fromBoolean(true));

// Option 2: Pass a List<Column> in a single call
List<Column> columns = new ArrayList<>();
columns.add(new Column("score", ColumnValue.fromDouble(95.5)));
columns.add(new Column("city", ColumnValue.fromString("Hangzhou")));
rowPutChange.addColumns(columns);

client.putRow(new PutRowRequest(rowPutChange));

Veri sürümünü belirtme

Sütunu yazarken özel bir veri sürümü ayarlamak için addColumn(name, value, timestamp) yöntemini kullanın.

String tableName = "put_row_demo";

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

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);

long timestamp = System.currentTimeMillis();
rowPutChange.addColumn("col1", ColumnValue.fromString("val1"), timestamp);

client.putRow(new PutRowRequest(rowPutChange));

Otomatik artan sütun için birincil anahtarı döndürme

Otomatik artan birincil anahtar sütunu için sütun değerini PrimaryKeyValue.AUTO_INCREMENT yer tutucusuna ayarlayın; sunucu yazma sırasında gerçek değeri oluşturur. Oluşturulan değeri yanıtta almak için yazma işleminden önce setReturnType(ReturnType.RT_PK) çağrısını yapın, ardından yazma döndükten sonra response.getRow() çağrısını yapın.

String tableName = "put_row_auto_inc_demo";

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("partition_key", PrimaryKeyValue.fromString("pk1"));
primaryKeyBuilder.addPrimaryKeyColumn("auto_id", PrimaryKeyValue.AUTO_INCREMENT);
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowPutChange rowPutChange = new RowPutChange(tableName, primaryKey);
rowPutChange.addColumn("payload", ColumnValue.fromString("hello"));
rowPutChange.setReturnType(ReturnType.RT_PK);

PutRowResponse response = client.putRow(new PutRowRequest(rowPutChange));
Row returnedRow = response.getRow();
System.out.println("Returned PK: " + returnedRow.getPrimaryKey());