Browse Source

添加 ExecOne

paddy 3 years ago
parent
commit
7eb4752a0d
1 changed files with 13 additions and 1 deletions
  1. 13 1
      session_raw.go

+ 13 - 1
session_raw.go

@@ -8,7 +8,7 @@ import (
 	"database/sql"
 	"reflect"
 	"time"
-
+	"errors"
 	"github.com/xormplus/builder"
 	"github.com/xormplus/core"
 )
@@ -344,3 +344,15 @@ func (session *Session) Exec(sqlOrArgs ...interface{}) (sql.Result, error) {
 
 	return session.exec(sqlStr, args...)
 }
+
+func (session *Session) ExecOne(sqlOrArgs ...interface{}) error {
+	updateCount, err := session.Exec(sqlOrArgs...)
+	if err != nil {
+		return err
+	}
+	affected, err := updateCount.RowsAffected()
+	if affected != 1 {
+		return errors.New("affected rows not equal one")
+	}
+	return nil
+}