diff --git a/main.go b/main.go index 404481298..08e16edde 100644 --- a/main.go +++ b/main.go @@ -465,6 +465,11 @@ func (s *DB) Save(value interface{}) *DB { if !scope.PrimaryKeyZero() { newDB := scope.callCallbacks(s.parent.callbacks.updates).db if newDB.Error == nil && newDB.RowsAffected == 0 { + if ignore, ok := scope.Get("gorm:ignore_save_rows_affected"); ok { + if v, ok := ignore.(bool); ok && v { + return newDB + } + } return s.New().FirstOrCreate(value) } return newDB