You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Gorm模型中使用自定义序列的配置问题

Gorm绑定PostgreSQL序列的正确方法

你的写法不生效是因为Gorm对主键生成逻辑的处理规则,sql:"nextval('user_tfa_info_seq')"这个标签不会被Gorm的主键生成逻辑识别,得换用以下方式:

  • 调整结构体标签:用gorm的default标签指定序列的nextval,同时注意ID字段类型要和序列类型匹配(PostgreSQL的bigint对应Go的int64,而非uint):
type UserTfaInfo struct {
    ID int64 `gorm:"primaryKey;type:bigint(20) not null;default:nextval('user_tfa_info_seq')"`
    // 其他字段按需添加
}
  • 手动关联序列(若表已存在):如果表已经创建,需要执行SQL语句将序列绑定到ID字段的默认值:
ALTER TABLE user_tfa_info ALTER COLUMN id SET DEFAULT nextval('user_tfa_info_seq');
  • 注意AutoMigrate的影响:如果使用Gorm的AutoMigrate,它可能会自动覆盖主键的默认生成策略,建议在AutoMigrate执行完成后,手动执行上面的SQL语句确保序列生效。

内容的提问来源于stack exchange,提问作者Montaser Majid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 02:50:29