【问题标题】:How can I get number of rows update for a update statement?如何获取更新语句的行数更新?
【发布时间】:2021-12-01 05:26:36
【问题描述】:

我在事务中运行它...

def update_session(transaction):
    global code
    global sessionexists
    count = transaction.execute_sql("update sessions set seentime=@t where sessioncode=@s", params={"s":code,"t":datetime.utcnow()}, 
       param_types={"t": spanner.param_types.TIMESTAMP})
    print("count "+str(count))
    sessionexists = 0
    for c in count:
        print(c)
        sessionexists = c

这似乎没有返回更新的行数... 有办法吗? 解决方案:
根据有效答案...这似乎也有效

count = transaction.execute_update("update sessions set seentime=@t where sessioncode=@s", params={"s":code,"t":datetime.utcnow()}, 
       param_types={"s": spanner.param_types.STRING,"t": spanner.param_types.TIMESTAMP})
count is the number of rows

.

【问题讨论】:

    标签: python google-cloud-spanner


    【解决方案1】:

    尝试将execute_sql 函数调用替换为execute_updateexecute_sql 用于返回行的查询。 execute_update 用于 DML 语句。

    有关如何使用 Python 客户端执行 DML 语句,另请参阅此代码示例:https://cloud.google.com/spanner/docs/samples/spanner-dml-standard-update#spanner_dml_standard_update-python

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-09
      • 2011-02-22
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      相关资源
      最近更新 更多