全部產品
Search
文件中心

Tablestore:寫入單行資料

更新時間:Jun 27, 2025

本文介紹如何通過 Java SDK 在Table Store的資料表中寫入單行資料。

前提條件

初始化Tablestore Client

方法說明

public PutRowResponse putRow(PutRowRequest putRowRequest) throws TableStoreException, ClientException

PutRowRequest參數說明

  • rowChange(必選)RowPutChange:寫入的行資料資訊,包含以下參數。

    名稱

    類型

    說明

    tableName(必選)

    String

    資料表名稱。

    primaryKey(必選)

    PrimaryKey

    主鍵資訊,包括主鍵列名稱和主索引值。

    • 主鍵列資料類型包括 STRING、INTEGER 和 BINARY。

    • 寫入資料的主鍵個數和類型必須與資料表的主鍵保持一致。

    • 主鍵列為自增列時,需將該列的值設定為預留位置,詳情請參見主鍵列自增

    columnsToPut(可選)

    List<Column>

    屬性列資訊,包括屬性列名稱、屬性列值和資料版本號碼。

    • 屬性列資料類型包括 STRING、INTEGER、BINARY、DOUBLE 和 BOOLEAN。

    • 資料版本號碼即時間戳記,預設由系統自動產生,也可以自己指定,詳情請參見資料版本和生命週期

    condition(可選)

    Condition

    寫入條件,詳情請參見條件更新

    returnType(可選)

    ReturnType

    傳回型別。

    • RT_NONE:預設值,不返回資料。

    • RT_PK:返回主鍵列,可以用於主鍵列自增。

    • RT_AFTER_MODIFY:返回更改後的列值,用於原子計數器

範例程式碼

以下範例程式碼在 test_table 表中寫入一行資料,該行資料的主索引值為 row1。

public static void putRowExample(SyncClient client) {
    // 構造主鍵
    PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
    primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("row1"));
    PrimaryKey primaryKey = primaryKeyBuilder.build();

    // 構造寫入行資料
    RowPutChange rowPutChange = new RowPutChange("test_table", primaryKey);

    // 調用 putRow 方法寫入行資料
    PutRowRequest putRowRequest = new PutRowRequest(rowPutChange);
    PutRowResponse putRowResponse = client.putRow(putRowRequest);

    // 返回結果處理
    System.out.println("* RequestId: " + putRowResponse.getRequestId());
    System.out.println("* Read CU Cost: " + putRowResponse.getConsumedCapacity().getCapacityUnit().getReadCapacityUnit());
    System.out.println("* Write CU Cost: " + putRowResponse.getConsumedCapacity().getCapacityUnit().getWriteCapacityUnit());
}
  • 添加屬性列。

    rowPutChange.addColumn("col1", ColumnValue.fromString("val1"));
  • 指定資料版本號碼,您可以為每個屬性列指定單獨的版本號碼。

    // 將目前時間戳作為版本號碼
    rowPutChange.addColumn("col1", ColumnValue.fromString("val1"), System.currentTimeMillis());

相關文檔