行のデータを更新します。
指定された行が存在しない場合は、新しい行が挿入されます。指定された行が存在する場合は、リクエストに基づいて指定された列の値が追加、変更、または削除されます。
リクエスト構文
message UpdateRowRequest {
required string table_name = 1;
required bytes row_change = 2;
required Condition condition = 3;
optional ReturnContent return_content = 4;
optional string transaction_id = 5;
}
パラメーター | タイプ | 必須 | 説明 |
table_name | string | はい | データを更新するテーブルの名前。 |
row_change | bytes | はい | 更新するデータ。プライマリキー列と属性列を含みます。データはPlainBuffer形式でエンコードされます。詳細は、PlainBuffer を参照してください。 Tablestoreは、row_changeのUpdateTypeの値に基づいて、行の指定された属性列の値を追加、変更、または削除します。行に存在するがrow_changeで指定されていない列は影響を受けません。 UpdateTypeの有効な値:
|
condition | はい | データが更新される前に、行の存在チェックを実行するかどうかを指定します。有効な値:
| |
return_content | いいえ | 行が正常に書き込まれた後のデータ型。プライマリキーのみを返すことができます。このパラメーターは、主に自動インクリメントプライマリキー列機能で使用されます。 | |
transaction_id | string | いいえ | ローカルトランザクションのID。ローカルトランザクション機能を使用してデータを読み取る場合は、このパラメーターが必要です。 |
レスポンス構文
message UpdateRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}
パラメーター | タイプ | 説明 |
consumed | 操作で消費される容量ユニット(CU)の数。詳細は、CU消費量 を参照してください。 | |
row | bytes | return_contentに値を指定した場合に返されるデータ。return_contentに値を指定しない場合、または戻り値が存在しない場合は、NULLが返されます。 返されるデータはPlainBuffer形式でエンコードされます。PlainBufferの詳細は、PlainBuffer を参照してください。 |
Tablestore SDKの使用
以下のTablestore SDKを使用して、単一行のデータを更新できます。
Tablestore SDK for Java:単一行のデータを更新する
Tablestore SDK for Go:単一行のデータを更新する
Tablestore SDK for Python:単一行のデータを更新する
Tablestore SDK for Node.js:単一行のデータを更新する
Tablestore SDK for .NET:単一行のデータを更新する
Tablestore SDK for PHP:単一行のデータを更新する
CU消費量
更新する行が存在しない場合、消費されるCUの数は、conditionパラメーターに指定した値によって異なります。
conditionパラメーターの値がIGNOREの場合、消費される書き込みCUの数は、次の式の計算結果から切り上げられます。消費される書き込みCUの数 = (行のすべてのプライマリキー列のデータサイズ + 更新する属性列のデータサイズ)/4 KB。UpdateRowに削除する属性列が含まれている場合、列名の長さが列のデータサイズとして計算されます。
conditionパラメーターの値がEXPECT_EXISTの場合、データを行に書き込むことができません。1つの書き込みCUと1つの読み取りCUが消費されます。
更新する行が存在する場合、消費されるCUの数は、conditionパラメーターに指定した値によって異なります。
conditionパラメーターの値がIGNOREの場合、消費される書き込みCUの数は、次の式の計算結果から切り上げられます。消費される書き込みCUの数 = (行のすべてのプライマリキー列のデータサイズ + 更新する属性列のデータサイズ)/4 KB。UpdateRowに削除する属性列が含まれている場合、列名の長さが列のデータサイズとして計算されます。
conditionパラメーターの値がEXPECT_EXISTの場合、書き込みCUと読み取りCUの両方が消費されます。消費される書き込みCUの数は、conditionパラメーターの値がIGNOREの場合に使用される式を使用して計算されます。消費される読み取りCUの数は、次の式を使用して計算された値から切り上げられます。消費される読み取りCUの数 = 行のプライマリキー列のデータサイズ/4 KB。
データサイズの計算方法の詳細は、課金概要 を参照してください。
リクエストがタイムアウトし、結果が未定義の場合、CUが消費される場合とされない場合があります。
HTTPステータスコード5xxが返された場合は、内部エラーが発生しました。この場合、操作はCUを消費しません。その他のエラーが返された場合は、1つの書き込みCUと1つの読み取りCUが消費されます。