【问题标题】:Running transaction for multiple queries in Cloud Spanner在 Cloud Spanner 中为多个查询运行事务
【发布时间】:2021-02-22 22:51:26
【问题描述】:

我有一堆 DDL 和 DML 语句,我想在具有特定超时的事务中运行它们。我在客户端使用 python (google-cloud-spanner)。

对如何构建交易有任何见解吗?

【问题讨论】:

  • 您尝试的方法是否存在特殊问题?
  • 我试图关注cloud.google.com/spanner/docs/transactions,但我不明白如何在一个事务中运行多个 SQL 语句。对于 SQL Server,我使用 executecommitrollback。想知道如何在扳手中做类似的事情
  • @Shrav 检查Cloud Spanner Python docs 将有助于为您解释事情。 run_in_transaction() 将自动处理提交和回滚,因此您不必手动触发它们。如果您需要进一步的帮助,请更新您的帖子以提供更多详细信息。
  • @Shrav 请问我的评论是否回答了您的问题?如果是这样,请告诉我,我会将其作为答案发布。
  • @DonnaldCucharo 是的,该链接有帮助

标签: python-3.x google-cloud-platform google-cloud-spanner


【解决方案1】:

通过检查Cloud Spanner Python docs,您将能够看到run_in_transaction() 将自动处理提交和回滚,因此您不必手动触发它们。这是注释:

您应该使用run_in_transaction() 来运行您需要的功能,而不是手动调用commit()rollback()。如果 with 块在没有引发异常的情况下退出,事务的 commit() 方法将被自动调用。该函数将自动重试 Aborted 错误,但将在 GoogleAPICallError 上引发,rollback() 将在所有其他错误上调用。

【讨论】:

    猜你喜欢
    • 2021-06-22
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 2016-12-04
    • 1970-01-01
    • 2021-02-28
    相关资源
    最近更新 更多