从gorm模型创建主键时出现问题

时间:2019-06-24 11:18:44

标签: go primary-key go-gorm cockroachdb

从gorm模型创建主键时,它返回错误“重复列名:“ id””

我的模型看起来像

type User struct { 
gorm.Model 
Id string gorm:"primary_key;" 
FirstName string 
LastName string 
}

不知道上述模型有什么问题

1 个答案:

答案 0 :(得分:1)

默认情况下,Gorm使用ID作为主键。 part of是您要嵌入的gorm.Model

在嵌入gorm.Model时,您应该将ID排除在外,因为gorm已经包含了它。另一种方法是删除嵌入的gorm.Model并自行指定ID

引用gorm conventions页:

  

gorm.Model是一个基本的GoLang结构,其中包括以下内容   字段:ID,CreatedAt,UpdatedAt和DeletedAt。

     

它可以嵌入到您的模型中,或者您可以构建自己的模型   没有它。

在模式创建而不是编译中失败的原因是,除非引用对象名称(Idid匹配,但是{{ 1}}不是)。与不区分大小写的结果相比,这将导致两个单独的列名称匹配。