使用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