| 123456789101112131415161718192021222324252627282930313233 |
- package dao
-
- import (
- "database/sql"
- "fmt"
-
- "git.x2erp.com/qdy/go-base/logger"
- )
-
- // ValidateResultRowsAffected 检查执行是否真正成功
- func ValidateResultRowsAffected(result sql.Result, err error, count int) (int64, error) {
- if count == 0 {
- return 0, err
- }
-
- if err != nil {
- return -1, err
- }
-
- // 获取受影响的行数
- rowsAffected, err := result.RowsAffected()
- if err != nil {
- return -1, fmt.Errorf("获取行数失败: %w", err)
- }
- logger.Debug("成功操作 %d 行", rowsAffected)
-
- // 严格校验:确保插入的行数与记录数匹配
- expectedRows := int64(count)
- if rowsAffected > expectedRows {
- return -1, fmt.Errorf("预期 %d, 实际 %d", expectedRows, rowsAffected)
- }
- return rowsAffected, err
- }
|