golang 目前在自带的 database 数据库操作包里面,如果事务 commit 失败,需不需要 rollback 回滚?

af913337456 · · 2816 次点击
af913337456
林冠宏
交流下啊
#1
更多评论
需要,一般都加在defer里 找了段代码,大概是这样 tx, err := m.DB().Begin() if err != nil { return err } defer tx.Rollback() Update := query.NewUpdate(m.TableName()) Update.Update.AddFields(m.FieldsUpdate(f)) Update.Where.Condition = query.Equal("id", id) _, err = Update.Query().Exec(tx) if err != nil { return err } return tx.Commit()
#2
这样写的话岂不是,不管成不成功 都会 rollback
#3