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

af913337456 · · 2822 次点击
A transaction must end with a call to Commit or Rollback. After a call to Commit or Rollback, all operations on the transaction fail with ErrTxDone. 所以如果Commit过,rollback也不过是返回个err
#4
更多评论
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