すべてのプロダクト
Search
ドキュメントセンター

Tablestore:単一行のデータの書き込み

最終更新日:Jul 01, 2025

このトピックでは、Tablestore SDK for Java を使用して Tablestore テーブルに単一行のデータを書き込む方法について説明します。

前提条件

クライアントが初期化されていること。 詳細については、「Tablestore クライアントの初期化」をご参照ください。

メソッド

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 があります。

    • バージョン番号は、デフォルトではシステムによって自動的に生成されるタイムスタンプ、またはユーザーが指定できます。 詳細については、「データバージョンと TTL」をご参照ください。

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

関連情報