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

Tablestore:自動採番主キー列の使用

最終更新日:Jul 23, 2026

Tablestore SDK for Java を使用して、テーブルの作成時に非パーティション主キー列を自動採番として設定し、データの書き込み時に生成された値を取得します。

前提条件

  • Tablestore SDK for Java をインストールし、クライアントを初期化します。

  • Tablestore SDK for Java 4.2.0 以降を使用します。

機能の説明

自動採番主キー列を使用するには、列の設定、データ書き込み時のプレースホルダーの使用、生成された値の取得という 3 つの手順が必要です。

説明

自動採番主キー列は、INTEGER 型の非パーティション主キー列で、テーブルの作成時に設定する必要があります。各テーブルには、自動採番主キー列を 1 つだけ含めることができます。Tablestore は、この列に対して 64 ビット符号付き整数を生成します。

生成される値は、同じパーティションキー内で一意であり、厳密に増加しますが、連続しているとは限りません。

自動採番主キー列の設定

テーブルの作成時に、非パーティション主キー列の optionPrimaryKeyOption.AUTO_INCREMENT に設定します。

次の例では、example_table テーブルを作成します。このテーブルは、id をパーティションキーとして使用し、incr を自動採番主キー列として使用します。

説明

データを書き込む前に、テーブルがアクティブになるまで待機してください。

String tableName = "example_table";

TableMeta tableMeta = new TableMeta(tableName);
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema("id", PrimaryKeyType.STRING));
tableMeta.addPrimaryKeyColumn(new PrimaryKeySchema(
        "incr", PrimaryKeyType.INTEGER, PrimaryKeyOption.AUTO_INCREMENT));

TableOptions tableOptions = new TableOptions(-1, 1);
CreateTableRequest request = new CreateTableRequest(tableMeta, tableOptions);
client.createTable(request);

データの書き込みと生成された値の取得

データを書き込むときは、自動採番列の値を PrimaryKeyValue.AUTO_INCREMENT に設定します。生成された値を取得するには、返却タイプを ReturnType.RT_PK に設定します。それ以外の場合、レスポンスには主キー情報が含まれません。

次の例では、example_table に行を書き込み、レスポンスから incr 列の生成された値を取得します。

PrimaryKeyBuilder primaryKeyBuilder = PrimaryKeyBuilder.createPrimaryKeyBuilder();
primaryKeyBuilder.addPrimaryKeyColumn("id", PrimaryKeyValue.fromString("partition-a"));
primaryKeyBuilder.addPrimaryKeyColumn("incr", PrimaryKeyValue.AUTO_INCREMENT);
PrimaryKey primaryKey = primaryKeyBuilder.build();

RowPutChange rowPutChange = new RowPutChange("example_table", primaryKey);
rowPutChange.addColumn("payload", ColumnValue.fromString("example-value"));
rowPutChange.setReturnType(ReturnType.RT_PK);

PutRowResponse response = client.putRow(new PutRowRequest(rowPutChange));
long generatedValue = response.getRow().getPrimaryKey()
        .getPrimaryKeyColumn("incr").getValue().asLong();
System.out.println("Generated value: " + generatedValue);

パラメーター

PrimaryKeySchema パラメーター

次のパラメーターは、自動採番主キー列を定義します。

名前

説明

name (必須)

String

自動採番主キー列の名前です。

type (必須)

PrimaryKeyType

自動採番主キー列のデータ型です。このパラメーターを INTEGER に設定します。

option (必須)

PrimaryKeyOption

主キー列の設定です。このパラメーターを AUTO_INCREMENT に設定します。

RowPutChange パラメーター

次のパラメーターは、自動採番主キー列への書き込みと返されるデータを制御します。

名前

説明

primaryKey (必須)

PrimaryKey

行の主キーです。列名、順序、および型は、テーブルスキーマと一致する必要があります。自動採番列の値を PrimaryKeyValue.AUTO_INCREMENT に設定します。

returnType (オプション)

ReturnType

返却タイプです。既定値は RT_NONE で、主キー情報を返しません。生成された値を含む完全な主キーを返すには、このパラメーターを RT_PK に設定します。

戻り値

次の PutRowResponse フィールドには、生成された自動採番値が含まれます。

フィールド

説明

row

Row

書き込まれた行の主キーを取得するには getRow() を呼び出します。このフィールドは returnTypeRT_PK に設定されている場合にのみ返され、生成された自動採番値を含みます。