u
This commit is contained in:
1 parent
c0ff3ce883
commit
69d03709ba
41 files changed
+5352
-67
No files matched your search
@@ -0,0 +1,61 @@
|
||||
package db
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// DeleteOne 根据主键删除单条记录
|
||||
func DeleteOne(table string, pkColumn string, pkValue interface{}) (int64, error) {
|
||||
tx, err := DB.Beginx()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
query := fmt.Sprintf("DELETE FROM %s WHERE %s=$1", table, pkColumn)
|
||||
res, err := tx.Exec(query, pkValue)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return 0, err
|
||||
}
|
||||
|
||||
if err := tx.Commit(); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return res.RowsAffected()
|
||||
}
|
||||
|
||||
// DeleteBatch 根据主键批量删除记录
|
||||
func DeleteBatch(table string, pkColumn string, pkValues []interface{}) (int64, error) {
|
||||
if len(pkValues) == 0 {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
tx, err := DB.Beginx()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
total := int64(0)
|
||||
for _, pk := range pkValues {
|
||||
query := fmt.Sprintf("DELETE FROM %s WHERE %s=$1", table, pkColumn)
|
||||
res, err := tx.Exec(query, pk)
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return 0, err
|
||||
}
|
||||
|
||||
rows, err := res.RowsAffected()
|
||||
if err != nil {
|
||||
tx.Rollback()
|
||||
return 0, err
|
||||
}
|
||||
total += rows
|
||||
}
|
||||
|
||||
if err := tx.Commit(); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return total, nil
|
||||
}
|
||||
Reference in new issue
Block a user