通过 SQL 删除数据

更新时间:
复制 MD 格式

通过 Java SDK 执行 DELETE 语句,删除未开启局部事务功能的数据表中的单行数据。

前提条件

  • 安装Tablestore Java SDK并初始化客户端。

  • 使用 5.17.11 及以上版本的 Tablestore Java SDK。

  • 已为待删除数据的数据表创建映射关系,且数据表未开启局部事务功能。

  • 使用 RAM 用户时,已授予 SQL_DML 权限。

功能说明

调用 sqlQuery 方法执行 DELETE 语句,删除一行数据。WHERE 子句必须使用等值条件指定全部主键列。

SQLQueryResponse sqlQuery(SQLQueryRequest request)

以下示例删除 example_table 数据表中主键值为 1row1 的一行数据。

String query = "DELETE FROM example_table "
        + "WHERE tenant_id = 1 AND pk = 'row1'";
SQLQueryRequest request = new SQLQueryRequest(query);

SQLQueryResponse response = client.sqlQuery(request);
System.out.println("Affected rows: " + response.getAffectedRows());

参数说明

SQLQueryRequest 包含以下参数。

名称

类型

说明

query(必选)

String

要执行的 DELETE 语句。WHERE 子句使用等值条件指定全部主键列。

返回值

SQLQueryResponse 包含以下与删除结果相关的字段。

字段

类型

说明

affectedRows

long

通过 getAffectedRows() 获取成功删除的行数。目标行存在时返回 1;目标行不存在时返回 0。

consumedCapacityByTable

Map<String, ConsumedCapacity>

通过 getConsumedCapacity() 获取各数据表消耗的读写 CU。服务端校验待删除数据时消耗读 CU,删除数据时消耗写 CU。

type

SQLStatementType

通过 getSQLStatementType() 获取 SQL 语句类型。执行 DELETE 语句时返回 SQL_DELETE