DeleteRow
調(diào)用DeleteRow接口刪除一行數(shù)據(jù)。
請求消息結(jié)構(gòu)
message DeleteRowRequest {
required string table_name = 1;
required bytes primary_key = 2; // Plainbuffer編碼為二進(jìn)制。
required Condition condition = 3;
optional ReturnContent return_content = 4;
optional string transaction_id = 5;
}
名稱 | 類型 | 是否必選 | 描述 |
table_name | string | 是 | 數(shù)據(jù)表名稱。 |
primary_key | bytes | 是 | 刪除行的主鍵。 主鍵為Plainbuffer格式。關(guān)于Plainbuffer編碼的更多信息,請參見Plainbuffer。 |
condition | 是 | 在數(shù)據(jù)操作前是否進(jìn)行存在性檢查。取值范圍如下:
| |
return_content | 否 | 寫入成功后返回的數(shù)據(jù)類型。目前僅支持返回主鍵,主要用于主鍵列自增功能中。 | |
transaction_id | string | 否 | 局部事務(wù)ID。當(dāng)使用局部事務(wù)功能刪除數(shù)據(jù)時必須設(shè)置此參數(shù)。 |
響應(yīng)消息結(jié)構(gòu)
message DeleteRowResponse {
required ConsumedCapacity consumed = 1;
optional bytes row = 2;
}
名稱 | 類型 | 描述 |
consumed | 本次操作消耗的服務(wù)能力單元。更多信息,請參見服務(wù)能力單元消耗。 | |
row | bytes | 當(dāng)設(shè)置了return_content后,返回的數(shù)據(jù)。如果未設(shè)置return_content或者沒有返回值,此處為NULL。 返回的數(shù)據(jù)為Plainbuffer格式。關(guān)于Plainbuffer編碼的更多信息,請參見Plainbuffer。 |
使用SDK
您可以使用如下語言的SDK刪除單行數(shù)據(jù)。
服務(wù)能力單元消耗
當(dāng)刪除的行不存在時,根據(jù)指定的條件檢查不同,刪除數(shù)據(jù)消耗的服務(wù)能力單元不同。
如果指定條件檢查為IGNORE,消耗寫服務(wù)能力單元的數(shù)值為該行主鍵數(shù)據(jù)大小除以4 KB向上取整。
如果指定條件檢查為EXPECT_EXIST,則刪除該行失敗,且消耗1單位的寫CU和1單位的讀CU。
當(dāng)刪除的行存在時,根據(jù)指定的條件檢查不同,刪除數(shù)據(jù)消耗的服務(wù)能力單元不同。
如果指定條件檢查為IGNORE,消耗寫服務(wù)能力單元的數(shù)值為該行主鍵數(shù)據(jù)大小除以4 KB向上取整。
如果指定條件檢查為EXPECT_EXIST,除了消耗該行主鍵數(shù)據(jù)大小除以4 KB向上取整的寫CU,還需消耗該行主鍵數(shù)據(jù)大小除以4 KB向上取整的讀CU。
關(guān)于數(shù)據(jù)大小的計算請參見產(chǎn)品定價。
- 如果請求超時,結(jié)果未定義,則服務(wù)能力單元有可能被消耗,也可能未被消耗。
如果返回內(nèi)部錯誤(HTTP狀態(tài)碼:5XX),則此次操作不消耗服務(wù)能力單元;其他錯誤情況消耗1個寫服務(wù)能力單元。