diff --git a/lxDb/sql.go b/lxDb/sql.go index 45cf420..8c44100 100644 --- a/lxDb/sql.go +++ b/lxDb/sql.go @@ -375,3 +375,24 @@ var where = []string{ "Rr", "Ee", } + +// Transaction 同时开两个事务的方法 +func Transaction(txItem, txMain *gorm.DB, fun func(txItem, txMain *gorm.DB) (err error)) (err error) { + tx1 := txItem.Begin() + tx2 := txMain.Begin() + err = fun(tx1, tx2) + if err != nil { + tx1.Rollback() + tx2.Rollback() + return err + } + err = tx1.Commit().Error + if err != nil { + return + } + err = tx2.Commit().Error + if err != nil { + return + } + return +}