From bccc8fdf1e25595b2738d65202781882604f5470 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E5=9C=A3=E5=8D=BF?= Date: Fri, 27 Oct 2023 17:05:52 +0800 Subject: [PATCH] refactor if branch --- callbacks/create.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/callbacks/create.go b/callbacks/create.go index 414dbd68..c10519c7 100644 --- a/callbacks/create.go +++ b/callbacks/create.go @@ -103,9 +103,15 @@ func Create(config *Config) func(db *gorm.DB) { } db.RowsAffected, _ = result.RowsAffected() - if db.RowsAffected != 0 && db.Statement.Schema != nil && - db.Statement.Schema.PrioritizedPrimaryField != nil && - db.Statement.Schema.PrioritizedPrimaryField.HasDefaultValue { + if db.RowsAffected == 0 { + return + } + + if db.Statement.Schema != nil { + if db.Statement.Schema.PrioritizedPrimaryField == nil || !db.Statement.Schema.PrioritizedPrimaryField.HasDefaultValue { + return + } + insertID, err := result.LastInsertId() insertOk := err == nil && insertID > 0 if !insertOk { @@ -147,11 +153,9 @@ func Create(config *Config) func(db *gorm.DB) { db.AddError(db.Statement.Schema.PrioritizedPrimaryField.Set(db.Statement.Context, db.Statement.ReflectValue, insertID)) } } - } - - // append @id column with value for auto-increment primary key - // the @id value is correct, when: 1. without setting auto-increment primary key, 2. database AutoIncrementIncrement = 1 - if db.RowsAffected != 0 && db.Statement.Schema == nil && db.Statement.Dest != nil { + } else if db.Statement.Dest != nil { + // append @id column with value for auto-increment primary key + // the @id value is correct, when: 1. without setting auto-increment primary key, 2. database AutoIncrementIncrement = 1 insertID, err := result.LastInsertId() insertOk := err == nil && insertID > 0 if !insertOk {