UpdateRow は、指定された行のデータを更新します。 指定された行が存在しない場合は、新しい行が追加されます。 指定された行が存在する場合、リクエストの内容にもとづいて、指定された列の値が追加、変更、または削除されます。

リクエストメッセージの構造:

message UpdateRowRequest {
    required string table_name = 1;
    required bytes row_change = 2;
    required Condition condition = 3;
    optional ReturnContent return_content = 4; 
}
			
table_name:
  • データ型:String

  • 必須なパラメーター:Yes

  • データを更新するテーブルの名前。

row_change:
  • データ型:Bytes

  • 必須なパラメーター:Yes

  • 更新するデータ。 Plainbuffer 形式。主キーと属性の列を含みます。 エンコーディングの詳細については、 Plainbuffer エンコーディングをご参照ください。

  • 該当の行に対して更新されるすべての属性列。 Table Store は、row_change の各 UpdateType の内容にもとづいて、指定された列の値を追加、変更、または削除します。

  • 行には存在するが row_change には存在しない列は、更新による影響を受けません。

  • UpdateType は、以下のいずれかの値になります。

    • PUT:UpdateType の値は有効な属性列値である必要があります。 これは、列が存在しない場合は新しい列が追加されることを示します。 列が既に存在している場合は上書きされます。

    • DELETE:UpdateType 値は null である必要があり、タイムスタンプが指定されている必要があります。 これは、列内の指定されたバージョンのデータが削除されていることを示します。

    • DELETE_ALL:UpdateType の値とタイムスタンプは null でなければなりません。 これは、その列のすべてのバージョンのデータが削除されていることを示します。

行のすべての属性列を削除する行為は、行を削除する行為とは同じではありません。 行を削除する場合は、DeleteRow 操作を実行します。

condition

  • データ型:Condition

  • 必須なパラメーター:Yes

  • データ更新前に存在をチェックするかどうかを決めます。 次の 2 つの値のうちのいずれかになります。

    • IGNORE :行の存在をチェックしません。

    • EXPECT_EXIST:行が存在することが予測されます。

  • 行が存在することが予測されるにもかかわらず存在しない場合、更新操作は失敗し、エラーが返されます。 行の存在が無視された場合、本操作は、行の存在有無に関係なく成功します。

return_content

  • データ型:ReturnContent

  • 必須なパラメーター:No

  • 行が正常に書き込まれた後のデータ型。 現時点では、主キーのみを返すことができます。主キー列の自動増分機能に使用されます。

レスポンスメッセージの構造:

message UpdateRowResponse {
    required ConsumedCapacity consumed = 1;
    optional bytes row = 2;
}
			

consumed

  • データ型:ConsumedCapacity

  • この操作によって消費された CU 。

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 エンコーディングをご参照ください。