【问题标题】:Insert a piece of data into mysql by using gorm使用gorm向mysql中插入一条数据
【发布时间】:2021-12-20 12:21:47
【问题描述】:

我想在我的数据库(MySQL)中插入一条数据。但是,我失败了。

错误 1364:字段 'envelopeId' 没有默认值。

我发现有人说这是因为主键是int类型,没有设置自增,其实这是varchar类型。

    var envelope Envelope
    envelope = Envelope{
        "100000000001",
        1,
        0,
        100,
    }
    fmt.Println(db.Create(&envelope).Error)

【问题讨论】:

  • 在相关表上显示结构定义和show create table 的输出。 “这实际上是一个 varchar 类型”你为什么不使用自动递增的 bigint 作为主键?
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: mysql go go-gorm


【解决方案1】:

此错误意味着您试图将NULL 值插入到不可为空的字段中,并且由于也没有指定默认值,因此它会给您带来错误。我假设"100000000001" 是您的主键,如果是这种情况,它已在您的结构中设置,您需要检查该字段是否设置了gorm:"column:envelopeId" 标记。 convention GORM 将使用蛇形大小写作为列名,而不是像您在数据库中使用的驼峰形大小写。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多