fix get last insert id from pg

This commit is contained in:
方圣卿 2023-11-15 19:35:06 +08:00
parent a26ce789b2
commit cbb02edcc9

View File

@ -107,6 +107,18 @@ func Create(config *Config) func(db *gorm.DB) {
return 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() insertID, err := result.LastInsertId()
insertOk := err == nil && insertID > 0 insertOk := err == nil && insertID > 0
if !insertOk { if !insertOk {
@ -114,16 +126,6 @@ func Create(config *Config) func(db *gorm.DB) {
return 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 // 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 // the @id value is correct, when: 1. without setting auto-increment primary key, 2. database AutoIncrementIncrement = 1
switch values := db.Statement.Dest.(type) { switch values := db.Statement.Dest.(type) {