调用DeleteRow接口删除一行数据。

请求消息结构

message DeleteRowRequest {
    required string table_name = 1;
    required bytes primary_key = 2; // Plainbuffer编码为二进制。
    required Condition condition = 3;
    optional ReturnContent return_content = 4; 
}
名称 类型 是否必选 描述
table_name string 数据表名称。
primary_key bytes 删除行的主键。

主键为Plainbuffer格式。关于Plainbuffer编码的更多信息,请参见Plainbuffer

condition Condition 在数据操作前是否进行存在性检查。取值范围如下:
  • IGNORE(默认):表示不做行存在性检查。

    当忽视该行是否存在时,无论该行实际是否存在,都会操作成功。

  • EXPECT_EXIST:表示期望行存在。

    当期待该行存在时,如果实际该行存在,则本次删除操作会成功;如果实际该行不存在,则本次删除操作会失败,返回错误。

return_content ReturnContent 写入成功后返回的数据类型。目前仅支持返回主键,主要用于主键列自增功能中。

响应消息结构

message DeleteRowResponse {
    required ConsumedCapacity consumed = 1;
    optional bytes row = 2;
}
名称 类型 描述
consumed ConsumedCapacity 本次操作消耗的服务能力单元。更多信息,请参见服务能力单元消耗
row bytes 当设置了return_content后,返回的数据。如果未设置return_content或者没有返回值,此处为NULL。

返回的数据为Plainbuffer格式。关于Plainbuffer编码的更多信息,请参见Plainbuffer

使用SDK

您可以使用如下语言的SDK删除单行数据。

服务能力单元消耗

  • 当删除的行不存在时,根据指定的条件检查不同,删除数据消耗的服务能力单元不同。
    • 如果指定条件检查为IGNORE,消耗写服务能力单元的数值为该行主键数据大小除以4 KB向上取整。
    • 如果指定条件检查为EXPECT_EXIST,则删除该行失败,且消耗1单位的写CU和1单位的读CU。
  • 当删除的行存在时,根据指定的条件检查不同,删除数据消耗的服务能力单元不同。
    • 如果指定条件检查为IGNORE,消耗写服务能力单元的数值为该行主键数据大小除以4 KB向上取整。
    • 如果指定条件检查为EXPECT_EXIST,除了消耗该行主键数据大小除以4 KB向上取整的写CU,还需消耗该行主键数据大小除以4 KB向上取整的读CU。

    关于数据大小的计算请参见产品定价

  • 如果请求超时,结果未定义,则服务能力单元有可能被消耗,也可能未被消耗。
  • 如果返回内部错误(HTTP状态码:5XX),则此次操作不消耗服务能力单元;其他错误情况消耗1个写服务能力单元。