使用Golang dbr进行事务处理

在实施时,无论如何事务都无法正常工作。
经过调查,我经常看到以下形式。

sess := conn.NewSession(nil)
tx, _ := sess.Begin()
_, err := sess.InsertInto など
if (err != nil) {
  tx.Rollback()
}

tx.Commit()

经常见到的形状

但是,经过尝试,无法回滚。。。

可能是dbr的版本,但查看dbr的文档时,发现dbr.Tx。

第一句: “tx.InsertInto”
在中文中的等价表达有:tx插入到、tx插入或tx插入至。

尝试用以下方式进行理解。 .)

sess := conn.NewSession(nil)
tx, _ := sess.Begin()
_, err := tx.InsertInto など
if (err != nil) {
  tx.Rollback()
}

tx.Commit()

一切没有问题,交易成功了。


追加(2016/09/20)

在 dbr 的 GitHub 上的测试代码也是一样的。
参考链接:https://github.com/gocraft/dbr/blob/master/transaction_test.go

广告
将在 10 秒后关闭
bannerAds