我的项目中使用了gorm,我需要为其自增功能设置一个起始值。 我尝试添加这一行,但没有进展:
type User struct {
gorm.Model
ID uint `gorm:"primarykey;autoIncrement:100"`
Email string `gorm:"not null; unique" form:"email" binding:"required"`
}
如何为 gorm AutoIncrement 函数定义像 100 这样的起始值?
我不认为,你可以用 gorm 本地完成它。这有点 hacky,但您可以在 AutoMigrate 之后执行原始 SQL 查询来设置增量值:
SELECT GREATEST(100, MAX(id) + 1) FROM table_name INTO @autoinc;
ALTER TABLE table_name AUTO_INCREMENT = @autoinc;
通过这种方式,您可以确保该值至少为 100(如果表中没有行),或者如果已经有行,则它是下一个值。
我找到了解决办法。在自动迁移代码之后,您可以编写以下代码:
DB.Create(
<your_table_model>{
ID: <start_value>,
DeletedAt: gorm.DeletedAt{Time: time.Now(), Valid: true}}
)