PutRow 操作を呼び出して、テーブルに単一行を挿入します。
行が存在しない場合、PutRow はその行を作成します。行がすでに存在する場合、PutRow はその行を上書きします。
成功した呼び出しでは、エラーは返されません。
リクエストメッセージ構造
message PutRowRequest {
required string table_name = 1;
required bytes row = 2; // Plainbuffer 形式でエンコードされたバイナリデータ。
required Condition condition = 3;
optional ReturnContent return_content = 4;
optional string transaction_id = 5;
}
|
Name |
Type |
Required |
Description |
|
table_name |
string |
Yes |
データを書き込むテーブルの名前です。 |
|
row |
bytes |
Yes |
書き込む行データ(プライマリキー列および属性列を含む)。Plainbuffer フォーマットでエンコードされます。詳細については、「Plainbuffer」をご参照ください。 |
|
condition |
Yes |
書き込み前に Tablestore が行の存在をチェックするかどうかを制御します。有効な値は次のとおりです。
|
|
|
return_content |
No |
書き込み成功後に返されるデータの種類です。返すことができるデータはプライマリキーのみです。このパラメーターは、自動採番主キー列機能と併用してください。 |
|
|
transaction_id |
string |
No |
ローカルトランザクション ID です。ローカルトランザクション内でデータを書き込む場合に必須です。 |
レスポンスメッセージ構造
message PutRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}
|
Name |
Type |
Description |
|
consumed |
この操作で消費された容量単位です。詳細については、「容量単位の消費」をご参照ください。 |
|
|
row |
bytes |
返された行データです。 返されたデータは PlainBuffer フォーマットでエンコードされています。PlainBuffer の詳細については、「PlainBuffer」をご参照ください。 |
SDK の使用
以下の SDK は、単一行のデータ挿入をサポートしています。
容量単位の消費
-
行が存在しない場合、容量単位の消費は条件チェックによって異なります。
IGNORE:書き込み容量単位 (WCU) を消費します。WCU = ceil((プライマリキー サイズ + 属性列 サイズ) / 4 KB)。
EXPECT_NOT_EXIST:書き込み容量単位 (WCU) および読み取り容量単位 (RCU) の両方を消費します。WCU = ceil((プライマリキー サイズ + 属性列 サイズ) / 4 KB)。RCU = ceil(プライマリキー サイズ / 4 KB)。
EXPECT_EXIST:書き込みは失敗し、1 WCU および 1 RCU を消費します。
-
行が存在する場合、容量単位の消費は条件チェックによって異なります。
IGNORE:WCU を消費します。WCU = ceil((プライマリキー サイズ + 属性列 サイズ) / 4 KB)。
EXPECT_EXIST:WCU および RCU の両方を消費します。WCU = ceil((プライマリキー サイズ + 属性列 サイズ) / 4 KB)。RCU = ceil(プライマリキー サイズ / 4 KB)。
EXPECT_NOT_EXIST:書き込みは失敗し、1 WCU および 1 RCU を消費します。
データサイズの計算方法については、「料金」をご参照ください。
条件付き更新の場合、成功時は上記の通りに消費量が計算されます。失敗時は、1 WCU および 1 RCU を消費します。
-
リクエストがタイムアウトし、結果が未定義の場合、容量単位 (CU) が消費される場合とされない場合があります。
内部エラー (HTTP ステータスコード 5xx) は容量単位を消費しません。その他のすべてのエラーは 1 WCU を消費します。