From b4467b717afa9dd3682b55831fab0225a1d8f35e Mon Sep 17 00:00:00 2001 From: Andrew Thornton Date: Tue, 14 Mar 2023 16:48:54 +0000 Subject: [PATCH] Try getting the LastInsertID before the rows affected Signed-off-by: Andrew Thornton --- session_upsert.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/session_upsert.go b/session_upsert.go index 784703ba..0946be9e 100644 --- a/session_upsert.go +++ b/session_upsert.go @@ -212,6 +212,8 @@ func (session *Session) upsertStruct(doUpdate bool, bean interface{}) (int64, er session.incrVersionFieldValue(verValue) } } + + id, iderr := res.LastInsertId() n, err := res.RowsAffected() if err != nil || n == 0 { return 0, err @@ -222,14 +224,12 @@ func (session *Session) upsertStruct(doUpdate bool, bean interface{}) (int64, er n = 1 } - if table.AutoIncrement == "" { - return n, nil + if iderr != nil || id <= 0 { + return n, err } - var id int64 - id, err = res.LastInsertId() - if err != nil || id <= 0 { - return n, err + if table.AutoIncrement == "" { + return n, nil } aiValue, err := table.AutoIncrColumn().ValueOf(bean)