【问题标题】:Issue while creating primary key from gorm model从gorm模型创建主键时出现问题
【发布时间】:2019-11-06 04:40:08
【问题描述】:

从 gorm 模型创建主键时,它返回错误“duplicate column name: “id””

我的模型看起来像

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

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

【问题讨论】:

    标签: go primary-key go-gorm cockroachdb


    【解决方案1】:

    Gorm 默认使用ID 作为主键。您正在嵌入的是 part of gorm.Model

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

    引用gorm conventions页面:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-24
      • 2021-11-24
      • 1970-01-01
      • 2020-07-05
      • 2023-01-02
      • 1970-01-01
      • 2021-07-06
      • 2022-01-26
      相关资源
      最近更新 更多