Prevent primary key from being changed when doing an update on Interface based queries

This commit is contained in:
Daniel Sullivan 2019-10-06 14:44:35 +09:00
parent 05fba9a152
commit 7fe81acec6

View File

@ -69,8 +69,13 @@ func updateCallback(scope *Scope) {
sort.Strings(columns)
for _, column := range columns {
value := updateMap[column]
sqls = append(sqls, fmt.Sprintf("%v = %v", scope.Quote(column), scope.AddToVars(value)))
// Get the field data
field, _ := scope.FieldByName(column)
if !field.IsPrimaryKey {
value := updateMap[column]
sqls = append(sqls, fmt.Sprintf("%v = %v", scope.Quote(column), scope.AddToVars(value)))
}
}
} else {
for _, field := range scope.Fields() {