mirror of
https://github.com/ManyakRus/starter.git
synced 2025-11-27 23:18:34 +02:00
сделал RawMultipleSQL()
This commit is contained in:
@@ -5,6 +5,7 @@ package postgres_gorm
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
"github.com/ManyakRus/starter/logger"
|
"github.com/ManyakRus/starter/logger"
|
||||||
"github.com/ManyakRus/starter/ping"
|
"github.com/ManyakRus/starter/ping"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -381,3 +382,33 @@ loop:
|
|||||||
|
|
||||||
stopapp.GetWaitGroup_Main().Done()
|
stopapp.GetWaitGroup_Main().Done()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RawMultipleSQL - выполняет текст запроса, отдельно для каждого запроса
|
||||||
|
func RawMultipleSQL(db *gorm.DB, TextSQL string) (*gorm.DB, error) {
|
||||||
|
var tx *gorm.DB
|
||||||
|
var err error
|
||||||
|
|
||||||
|
// запустим все запросы отдельно
|
||||||
|
sqlSlice := strings.Split(TextSQL, ";")
|
||||||
|
len1 := len(sqlSlice)
|
||||||
|
for i, v := range sqlSlice {
|
||||||
|
if i == len1-1 {
|
||||||
|
tx = db.Raw(v)
|
||||||
|
err = tx.Error
|
||||||
|
} else {
|
||||||
|
tx = db.Raw(v)
|
||||||
|
err = tx.Error
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
TextError := fmt.Sprint("db.Raw() error: ", err, ", TextSQL: \n", v)
|
||||||
|
err = errors.New(TextError)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if tx == nil {
|
||||||
|
log.Panic("db.Raw() error: rows =nil")
|
||||||
|
}
|
||||||
|
|
||||||
|
return tx, err
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user