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

Tablestore:自動インクリメント主キー列の使用

最終更新日:Aug 05, 2026

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

前提条件

Tablestore SDK for Java をインストールし、クライアントを初期化します。自動インクリメント主キー列を使用するには、バージョン 4.2.0 以降が必要です。最新バージョンの使用を推奨します。

機能の説明

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

説明

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

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

自動インクリメント主キー列の設定

テーブル作成時に、非パーティション主キー列の option を PrimaryKeyOption.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() を呼び出して、書き込まれた行のプライマリキーを取得します。このフィールドは、returnType が RT_PK に設定されている場合にのみ返され、生成された自動インクリメント値を含みます。