UpdateRow__API 概覽_API 參考_表格存儲-阿裏雲
行為:
更新指定行的數據。如果該行不存在,則新增一行;若該行存在,則根據請求的內容在這一行中新增、修改或者刪除指定列的值。
請求消息結構:
message UpdateRowRequest {
required string table_name = 1;
required Condition condition = 2;
repeated Column primary_key = 3;
repeated ColumnUpdate attribute_columns = 4;
}
table_name:
類型: string。
是否必要參數: 是。
請求更新數據的表名。
condition:
類型: Condition。
是否必要參數: 是。
在數據更新前是否進行存在性檢查,可以取下麵兩個值:
IGNORE 表示不做行存在性檢查。
EXPECT_EXIST 表示期望行存在。
若期待該行存在但該行不存在,則本次更新操作會失敗, 返回錯誤;若忽視該行是否存在,則無論該行是否存在,都不會因此導致本次操作失敗。
primary_key:
類型: repeated Column。
是否必要參數: 是。
請求更新的行全部的主鍵列。
attribute_columns:
類型: repeated ColumnUpdate。
是否必要參數: 是。
該行本次想要更新的全部屬性列,表格存儲會根據 attribute_columns 中每個 ColumnUpdate 的內容在這一行中新增、修改或者刪除指定列的值。
該行已經存在的不在 attribute_columns 列表中的列將不受影響。
attribute_columns 中應至少含有一個 ColumnUpdate 對象,否則請求失敗,返回錯誤。
若 attribute_columns 中出現了相同列名的列,則請求失敗,返回錯誤。
attribute_columns 中 ColumnUpdate 的個數不能超過 1024 個;更新完成後,每行的屬性列亦不能超過 1024 個。
ColumnUpdate 的 type 可以取下麵兩個值:
PUT:此時該 ColumnUpdate 的 value 必須為有效的屬性列值。語意為如果該列不存在,則新增一列;如果該列存在,則覆蓋該列。
DELETE:此時該 ColumnUpdate 的 value 必須為空。語意為刪除該列。
如果該行不存在,且 attribute_columns 中隻含有 type 為 DELETE的ColumnUpdate,則 UpdateRow 操作完成後該行仍然不存在。
注意:刪除本行的全部屬性列不等同於刪除本行,若想刪除本行,請使用 DeleteRow 操作。
響應消息結構:
message UpdateRowResponse {
required ConsumedCapacity consumed = 1;
}
consumed:
類型 ConsumedCapacity。
本次操作消耗的服務能力單元。
服務能力單元消耗:
如果該行不存在:
若指定條件檢查為 IGNORE,消耗寫服務能力單元的數值為本行的主鍵數據大小與要更新的屬性列數據大小之和除以 4 KB 向上取整。如果 UpdateRow 中包含有需要刪除的屬性列,隻有其列名長度計入該屬性列數據大小。
若指定條件檢查為 EXPECT_EXIST,本次插入失敗並且消耗 1 單位寫 CU 和 1 單位讀 CU。
如果該行存在:
若指定條件檢查為 IGNORE,消耗寫服務能力單元的數值為本行的主鍵數據大小與要更新的屬性列數據大小之和除以 4 KB 向上取整。如果 UpdateRow 中包含有需要刪除的屬性列,隻有其列名長度計入該屬性列數據大小。
若指定條件檢查為 EXPECT_EXIST,除了需要消耗在條件檢查為 IGNORE 情況下的寫 CU,還需消耗該行主鍵數據大小除以 4 KB 向上取整的讀 CU。
關於數據大小的計算請參見購買指導。
如果請求超時,結果未定義,服務能力單元有可能被消耗,也可能未被消耗。
如果返回內部錯誤(HTTP 狀態碼:5XX),則此次操作不消耗服務能力單元;其他錯誤情況消耗 1 個寫服務能力單元和 1 個讀服務能力單元。
請求示例:
UpdateRowRequest {
table_name: "consume_history"
condition {
row_existence: EXPECT_EXIST
}
primary_key {
name: "CardID"
value {
type: STRING
v_string: "2007035023"
}
}
primary_key {
name: "SellerID"
value {
type: STRING
v_string: "00022"
}
}
primary_key {
name: "DeviceID"
value {
type: STRING
v_string: "061104"
}
}
primary_key {
name: "OrderNumber"
value {
type: INTEGER
v_int: 142857
}
}
attribute_columns {
type: PUT
name: "Amount"
value {
type: DOUBLE
v_double: 3.5
}
}
attribute_columns {
type: DELETE
name: "Remarks"
}
}
響應示例:
UpdateRowResponse {
consumed {
capacity_unit {
write: 1
}
}
}
最後更新:2016-11-23 16:03:56
上一篇:
PutRow__API 概覽_API 參考_表格存儲-阿裏雲
下一篇:
DeleteRow__API 概覽_API 參考_表格存儲-阿裏雲
RowExistenceExpectation__DataType_API 參考_表格存儲-阿裏雲
CDN加速OSS__存儲空間管理_最佳實踐_對象存儲 OSS-阿裏雲
DeleteBucketLifecycle__關於Bucket的操作_API 參考_對象存儲 OSS-阿裏雲
2016年10月12日安全管家控製台發布__產品升級更新_安全管家服務-阿裏雲
價格概攬__購買指導_視頻直播-阿裏雲
網絡正常但無法通過FTP連接ECS或虛機服務器__故障處理_雲服務器 ECS-阿裏雲
創建存儲空間__快速入門_對象存儲 OSS-阿裏雲
InvalidUrl__錯誤說明_API 網關-阿裏雲
訪問域名和數據中心__開發人員指南_對象存儲 OSS-阿裏雲
企業郵箱發信失敗 報錯:554reject by content spam分析__郵件收發_郵箱常見問題_企業郵箱-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲