UpdateRow は、指定された行のデータを更新します。 指定された行が存在しない場合は、新しい行が追加されます。 指定された行が存在する場合、リクエストの内容にもとづいて、指定された列の値が追加、変更、または削除されます。
リクエストメッセージの構造:
message UpdateRowRequest {
required string table_name = 1;
required bytes row_change = 2;
required Condition condition = 3;
optional ReturnContent return_content = 4;
}
-
データ型:String
-
必須なパラメーター:Yes
-
データを更新するテーブルの名前。
-
データ型:Bytes
-
必須なパラメーター:Yes
-
更新するデータ。 Plainbuffer 形式。主キーと属性の列を含みます。 エンコーディングの詳細については、 Plainbuffer エンコーディングをご参照ください。
-
該当の行に対して更新されるすべての属性列。 Table Store は、row_change の各 UpdateType の内容にもとづいて、指定された列の値を追加、変更、または削除します。
-
行には存在するが row_change には存在しない列は、更新による影響を受けません。
-
UpdateType は、以下のいずれかの値になります。
-
PUT:UpdateType の値は有効な属性列値である必要があります。 これは、列が存在しない場合は新しい列が追加されることを示します。 列が既に存在している場合は上書きされます。
-
DELETE:UpdateType 値は null である必要があり、タイムスタンプが指定されている必要があります。 これは、列内の指定されたバージョンのデータが削除されていることを示します。
-
DELETE_ALL:UpdateType の値とタイムスタンプは null でなければなりません。 これは、その列のすべてのバージョンのデータが削除されていることを示します。
-
condition:
-
データ型:Condition
-
必須なパラメーター:Yes
-
データ更新前に存在をチェックするかどうかを決めます。 次の 2 つの値のうちのいずれかになります。
-
IGNORE :行の存在をチェックしません。
-
EXPECT_EXIST:行が存在することが予測されます。
-
-
行が存在することが予測されるにもかかわらず存在しない場合、更新操作は失敗し、エラーが返されます。 行の存在が無視された場合、本操作は、行の存在有無に関係なく成功します。
return_content:
-
データ型:ReturnContent
-
必須なパラメーター:No
-
行が正常に書き込まれた後のデータ型。 現時点では、主キーのみを返すことができます。主キー列の自動増分機能に使用されます。
レスポンスメッセージの構造:
message UpdateRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}
consumed:
-
データ型:ConsumedCapacity
-
この操作によって消費された CU 。
-
行が存在しない場合:
-
指定された条件チェックの値が IGNORE の場合、消費される書き込み CU の数値は、行の主キーのサイズと更新される属性列のサイズの合計を 4 KB で割って切り上げた値です。 UpdateRow に、削除予定の属性列が含まれている場合、列名の長さのみが属性列のデータサイズに含まれます。
-
指定された条件チェックの値が EXPECT_EXIST の場合、行の挿入は失敗し、1つの書き込み CUと 1 つの読み取り CU が消費されます。
-
-
行が存在する場合:
-
指定された条件チェックの値が IGNORE の場合、消費される書き込み CU の数は、行の主キーのサイズと更新される属性列のサイズの合計を 4 KB で割って切り上げた値です。 UpdateRow に、削除予定の属性列が含まれている場合、列名の長さのみが属性列のデータサイズに含まれます。
-
指定された条件チェックの値が EXPECT_EXIST の場合、書き込み CU と読み取り CU の両方が消費されます。 消費された書き込み CU の数値は、指定された条件チェックの値が IGNORE の場合と同様です。消費された読み取り CU の数は、行の主キーのサイズを 4 KB で割って切り上げた値になります。
データサイズの計算方法については、 Billingをご参照ください。
-
-
リクエストのタイムアウトが発生し、結果が定義されていない場合、CU は消費される場合と消費されない場合があります。
-
内部エラーコードが返された場合 (HTTPステータスコード:5XX)、 CU は消費されません。 その他のエラーが返された場合、1 つの書き込み CU と 1 つの読み取り CU が消費されます。
row:
-
データ型:Bytes
-
return_content が設定されている場合に返されるデータ。
-
return_content が設定されていない場合、または値が返されない場合は、NULL が返されます。
-
Plainbuffer 形式です。 エンコーディングの詳細については、 Plainbuffer エンコーディングをご参照ください。