Browse Source

同时开两个事务的方法

lingxin 1 month ago
parent
commit
ce4d32530b
1 changed files with 21 additions and 0 deletions
  1. 21 0
      lxDb/sql.go

+ 21 - 0
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
+}