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

Issue while creating primary key from gorm model

从 gorm 模型创建主键时 return 出现错误“重复的列名:“id””

我的模型看起来像

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

知道上面的模型有什么问题吗

Gorm 使用 ID as the primary key by default. It is part of 您正在嵌入的 gorm.Model

当嵌入 gorm.Model 时,你应该离开 ID 因为 gorm 已经包含了它。另一种方法是删除嵌入的 gorm.Model 并自己指定 ID

引用gorm conventions页面:

gorm.Model is a basic GoLang struct which includes the following fields: ID, CreatedAt, UpdatedAt, DeletedAt.

It may be embeded into your model or you may build your own model without it.

与编译相反,模式创建失败的原因是许多数据库(包括 CockroachDB)会进行不区分大小写的检查,除非您引用对象名称(Id 匹配 id,但是"Id" 没有)。与不区分大小写相比,这会导致两个单独的列名称匹配。