通过 Python SDK 执行 UPDATE 语句,更新未开启局部事务功能的数据表中的单行数据。
前提条件
-
安装Tablestore Python SDK并初始化客户端。
-
SQL 查询功能需要使用 5.4.2 及以上版本,建议使用最新版本。
-
已为待操作的数据表创建映射关系,且数据表未开启局部事务功能。
-
使用 RAM 用户时,已授予
SQL_DML权限。
功能说明
调用 exe_sql_query 方法执行 UPDATE 语句,更新一行数据。WHERE 条件必须完整指定该行的全部主键列;不支持更新主键列。
def exe_sql_query(self, query)
以下示例将 example_table 中指定行的 name 列值更新为 updated。
query = (
"UPDATE example_table SET name = 'updated' "
"WHERE tenant_id = 1 AND pk = 'row1'"
)
row_list, table_capacity_units, _ = client.exe_sql_query(query)
参数说明
exe_sql_query 方法包含以下参数。
|
名称 |
类型 |
说明 |
|
query(必选) |
String |
要执行的 |
返回值
exe_sql_query 方法返回一个三元组,包含以下元素。
|
元素 |
类型 |
说明 |
|
|
List[Row] |
SQL 更新不返回数据行,因此该元素为空列表。 |
|
|
List[Tuple] |
各数据表消耗的读写 CU。每个元组包含数据表名称和 |
|
|
List[Tuple] |
各多元索引消耗的读写 CU。每个元组包含多元索引名称和 |
场景示例
原子递增或递减整数值
在 SET 子句中使用 属性列 = 属性列 + 整数 或 属性列 = 属性列 - 整数,可以原子递增或递减 BIGINT 类型的属性列。以下示例将 score 列的值原子增加 5。
query = (
"UPDATE example_table SET score = score + 5 "
"WHERE tenant_id = 1 AND pk = 'row1'"
)
row_list, table_capacity_units, _ = client.exe_sql_query(query)
该文章对您有帮助吗?