微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sqlx 事务上下文与 Exec 上下文

如何解决sqlx 事务上下文与 Exec 上下文

我使用 sqlx 和 Postgres 运行以下代码

ctx1 := context.Background()
ctx2,cancel2 := context.WithCancel(context.Background())
ctx3,cancel3 := context.WithCancel(context.Background())

db,_ := sqlx.Connect("postgres",dataSrc)
tx,_ := db.BeginTxx(ctx1,nil)
tx.ExecContext(ctx2,someArgs...)
tx.ExecContext(ctx3,someArgs...)
cancel3() // ? Will the entire transaction fail? Do I need to rollback?

从上面的代码片段可以看出。我有 3 个不同的上下文,我取消了第三个上下文。在这种情况下,会发生什么? cancel3() 会导致整个交易失败吗?或者只是那个特定的 Exec 调用失败?我需要回滚吗?

如果我们像这样改变顺序会发生什么:

ctx1 := context.Background()
ctx2,someArgs...)
cancel2() // cancel the 2nd one instead

我似乎找不到任何关于此的文档。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。