diff --git a/callbacks/create.go b/callbacks/create.go index 04438232..b1488b08 100644 --- a/callbacks/create.go +++ b/callbacks/create.go @@ -107,6 +107,18 @@ func Create(config *Config) func(db *gorm.DB) { return } + var ( + pkField *schema.Field + pkFieldName = "@id" + ) + if db.Statement.Schema != nil { + if db.Statement.Schema.PrioritizedPrimaryField == nil || !db.Statement.Schema.PrioritizedPrimaryField.HasDefaultValue { + return + } + pkField = db.Statement.Schema.PrioritizedPrimaryField + pkFieldName = db.Statement.Schema.PrioritizedPrimaryField.DBName + } + insertID, err := result.LastInsertId() insertOk := err == nil && insertID > 0 if !insertOk { @@ -114,16 +126,6 @@ func Create(config *Config) func(db *gorm.DB) { return } - var ( - pkField *schema.Field - pkFieldName = "@id" - ) - - if db.Statement.Schema != nil && db.Statement.Schema.PrioritizedPrimaryField != nil && db.Statement.Schema.PrioritizedPrimaryField.HasDefaultValue { - pkField = db.Statement.Schema.PrioritizedPrimaryField - pkFieldName = db.Statement.Schema.PrioritizedPrimaryField.DBName - } - // 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 switch values := db.Statement.Dest.(type) {