golang mysql事务
作者:
杜子龙 | 来源:发表于
2020-08-09 18:33 被阅读0次func RunTx(connection *db.Connection, fn func(tx *sql.Tx) error) (err error) {
tx, err := connection.Begin()
if err != nil {
return
}
defer func() {
if e := recover(); e != nil {
stack := debugutil.Stack(3)
log.Errorf("[TxFactory] panic recovered:\n%s\n%s", e, stack)
tx.Rollback()
err = fmt.Errorf("tx panic:%s", e)
}
}()
if err := fn(tx); err != nil {
tx.Rollback()
return err
}
if err = tx.Commit(); err != nil {
tx.Rollback()
return
}
return
}
本文标题:golang mysql事务
本文链接:https://www.haomeiwen.com/subject/hwfrdktx.html
网友评论