Describe the feature
For integer primary keys, gorm:"primaryKey" should behave like gorm:"primaryKey;autoIncrement:false" instead of gorm:"primaryKey;autoIncrement:true".
Motivation
- The default behaviour for
gorm.Model is soft deletion. As soft deleted records persist, there's no need for AUTOINCREMENT use as in this case no key values are deleted and thus cannot be reused.
- When a record gets deleted with
Unscoped, AUTOINCREMENT prevents reuse of the record's ROWID for future records, this may or may not be desired depending on a particular use case.
- Use of
AUTOINCREMENT is discouraged by SQLite creators due to its performance overhead.
Given the above, I think changing the default behaviour of gorm:"primaryKey" would be beneficial as the use of AUTOINCREMENT is unnecessary in most cases.
Related Issues
Describe the feature
For integer primary keys,
gorm:"primaryKey"should behave likegorm:"primaryKey;autoIncrement:false"instead ofgorm:"primaryKey;autoIncrement:true".Motivation
gorm.Modelis soft deletion. As soft deleted records persist, there's no need forAUTOINCREMENTuse as in this case no key values are deleted and thus cannot be reused.Unscoped,AUTOINCREMENTprevents reuse of the record'sROWIDfor future records, this may or may not be desired depending on a particular use case.AUTOINCREMENTis discouraged by SQLite creators due to its performance overhead.Given the above, I think changing the default behaviour of
gorm:"primaryKey"would be beneficial as the use ofAUTOINCREMENTis unnecessary in most cases.Related Issues