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 (将#修改为@)