全部产品
Search
文档中心

表格存储:删除单行数据

更新时间:Mar 30, 2026

本文介绍如何使用 Python SDK 删除表格存储数据表的单行数据。

前提条件

初始化Tablestore Client

方法说明

def delete_row(self, table_name, row=None, condition=None, return_type=None, transaction_id=None, **kwargs)

参数说明

名称

类型

说明

table_name(必选)

str

数据表名称。

row(必选)

Row

删除的行数据信息。

  • primary_key(必选)List[Tuple]:主键信息,包括主键列名称和主键值。

    • 主键列数据类型包括 STRING、INTEGER 和 BINARY。

    • 主键个数和类型必须与数据表的主键保持一致。

condition(可选)

Condition

删除条件,详情请参见条件更新

return_type(可选)

ReturnType

返回类型。

  • RT_NONE:默认值,不返回数据。

  • RT_PK:返回主键列。

transaction_id(可选)

str

局部事务ID,用于唯一标识局部事务,详情请参见局部事务

示例代码

以下示例代码用于删除 test_table 表中主键值为 row1 的行数据。

try:
    # 构造主键
    primary_key = [('id', 'row1')]

    # 构造删除的行数据
    row = Row(primary_key)

    # 调用 delete_row 方法删除行数据
    consumed, return_row = client.delete_row('test_table', row)
    print('Read CU Cost: %s' % consumed.read)
    print('Write CU Cost: %s' % consumed.write)
except Exception as e:
    print("Delete row failed with error: %s" % e)

常见问题

表格存储Python SDK 6.0.0删除单行数据报错

推荐以下两种方式解决此问题。

  • 升级表格存储Python SDK的版本。

  • 修改删除数据方法的参数。

    # 设置数据表名称。
    table_name = '<TABLE_NAME>'
    # 构造行主键。
    primary_key = [('gid', 1), ('uid', '101')]
    condition = Condition('IGNORE')
    try:
        consumed, return_row = client.delete_row(table_name, primary_key, condition)
        print('Delete succeed, consume %s write cu.' % consumed.write)
    # 客户端异常,一般为参数错误或者网络异常。
    except OTSClientError as e:
        print("Delete row failed, http_status:%d, error_message:%s" % (e.get_http_status(), e.get_error_message()))
    # 服务端异常,一般为参数错误或者流控错误。
    except OTSServiceError as e:
        print("Delete row failed, http_status:%d, error_code:%s, error_message:%s, request_id:%s" % (
        e.get_http_status(), e.get_error_code(), e.get_error_message(), e.get_request_id()))

相关文档

批量更新数据