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 }