Tablestore SDK for Java を使用して、テーブルの作成時に非パーティション主キー列を自動採番として設定し、データの書き込み時に生成された値を取得します。
前提条件
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 (必須) |
|
自動採番主キー列の名前です。 |
|
type (必須) |
|
自動採番主キー列のデータ型です。このパラメーターを |
|
option (必須) |
|
主キー列の設定です。このパラメーターを |
RowPutChange パラメーター
次のパラメーターは、自動採番主キー列への書き込みと返されるデータを制御します。
|
名前 |
型 |
説明 |
|
primaryKey (必須) |
|
行の主キーです。列名、順序、および型は、テーブルスキーマと一致する必要があります。自動採番列の値を |
|
returnType (オプション) |
|
返却タイプです。既定値は |
戻り値
次の PutRowResponse フィールドには、生成された自動採番値が含まれます。
|
フィールド |
型 |
説明 |
|
|
|
書き込まれた行の主キーを取得するには |