パーティションキーではないプライマリキー列を自動採番列として設定すると、データ書き込み時にその列の値を指定する必要がありません。Tablestore は、各パーティションキー内で一意かつ厳密に増加する値を自動的に生成します。
機能
自動採番主キー列には以下の特性があります。
-
自動採番列の値は、パーティションキー内で一意かつ厳密に増加しますが、連続するとは限りません。
-
自動採番列のデータ型は、64 ビット符号付き整数です。
-
自動採番列はデータテーブル単位で定義します。1 つのインスタンスには、自動採番列を持つデータテーブルと持たないデータテーブルの両方を含めることができます。
この機能は、条件付き更新のルールには影響しません。詳細については、「条件付き更新」をご参照ください。
使用上の注意
-
各データテーブルに設定できる自動採番主キー列は 1 つまでです。パーティションキーを自動採番列として定義することはできません。
-
自動採番列は、データテーブルの作成時にのみ定義できます。既存のデータテーブルに追加することはできません。
-
整数型のプライマリキー列のみを自動採番列として定義できます。システムが生成する自動採番列の値は、64 ビット符号付き整数です。
-
属性列を自動採番列として定義することはできません。
-
自動採番主キー列機能とローカルトランザクション機能を同時に使用することはできません。
-
自動採番主キー列を持つテーブルにデータを書き込む場合、その後の更新や読み取りのために、生成された列の値を取得して保存する必要があります。
API オペレーション
自動採番主キー列機能に関連する API オペレーションを次の表に示します。
|
API |
説明 |
|
この機能を使用するには、データテーブルの作成時に、パーティションキーではないプライマリキー列を自動採番列として定義する必要があります。 |
|
|
データテーブルの作成後、UpdateTable API を使用してプライマリキー列を自動採番列として再定義することはできません。 |
|
|
データ書き込み時に自動採番列の値を指定する必要はありません。Tablestore が自動的に値を生成します。 完全なプライマリキーを取得するには、ReturnType パラメーターを RT_PK に設定します。これにより、GetRow API でデータをクエリできます。 重要
行を更新する必要があるものの、自動採番されたプライマリキー値を保存していない場合は、まず GetRange API を使用して完全なプライマリキーを取得してから更新してください。 |
|
|
GetRow API では、完全なプライマリキーが必要です。完全なプライマリキーは、PutRow、UpdateRow、または BatchWriteRow リクエストで ReturnType パラメーターを RT_PK に設定することで取得できます。 重要
データ書き込み時に自動採番主キー列の値を保存していない場合でも、最初のプライマリキー列に基づいてデータの範囲を読み取ることができます。詳細については、「データの範囲を読み取る」をご参照ください。 |
|
使用方法
コンソール
CLI
SDK
課金
この機能は、既存の課金ルールに影響しません。プライマリキーデータを返却しても、追加の読み込みキャパシティーユニットは消費されません。