从 Gorm 模型创建主键时,它返回错误“重复列名:“id””
我的模型看起来像
type User struct {
gorm.Model
Id string gorm:"primary_key;"
FirstName string
LastName string
}
知道上面的模型有什么问题吗
戈尔姆用途ID https://gorm.io/docs/conventions.html#ID-as-Primary-Key默认作为主键。这是part of https://gorm.io/docs/conventions.html#gorm-Model the gorm.Model
你正在嵌入。
当嵌入gorm.Model
,你应该离开ID
因为 gorm 已经包含它了。另一种方法是删除嵌入的gorm.Model
并指定ID
你自己。
引用戈尔姆约定 https://gorm.io/docs/conventions.html#gorm-Model page:
gorm.Model 是一个基本的 GoLang 结构体,其中包括以下内容
字段:ID、创建时间、更新时间、删除时间。
它可以嵌入到您的模型中,或者您可以在没有它的情况下构建自己的模型。
与编译相反,模式创建失败的原因是许多数据库(包括 CockroachDB)都会进行不区分大小写的检查,除非您引用对象名称(Id
火柴id
, but "Id"
才不是)。与不区分大小写相比,这会导致两个单独的列名称相匹配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)