从gorm模型创建主键时,它返回错误“重复列名:“ id””
我的模型看起来像
type User struct {
gorm.Model
Id string gorm:"primary_key;"
FirstName string
LastName string
}
不知道上述模型有什么问题
答案 0 :(得分:1)
默认情况下,Gorm使用ID
作为主键。 part of是您要嵌入的gorm.Model
。
在嵌入gorm.Model
时,您应该将ID
排除在外,因为gorm已经包含了它。另一种方法是删除嵌入的gorm.Model
并自行指定ID
。
引用gorm conventions页:
gorm.Model是一个基本的GoLang结构,其中包括以下内容 字段:ID,CreatedAt,UpdatedAt和DeletedAt。
它可以嵌入到您的模型中,或者您可以构建自己的模型 没有它。
在模式创建而不是编译中失败的原因是,除非引用对象名称(Id
与id
匹配,但是{{ 1}}不是)。与不区分大小写的结果相比,这将导致两个单独的列名称匹配。