为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的数据库列的值总是 0?

为什么我的数据库列的值总是 0?

Go
慕桂英3389331 2021-09-27 15:30:51
我正在使用 go-gorm 从 PostgreSQL 数据库中获取值。相关代码如下所示:type Chip struct {    UUID    string `db:uuid`    URL     string `db:url`    N       int    `db:n`    Pack_ID int    `db:pack_id`}func getChip(uuid string) (Chip, error) {    var c Chip    err := DB.Model(Chip{}).Where("uuid = ?", uuid).First(&c)    return c, err.Error}当我通过UUID字符串getChip,返回正确的行和所有值都正确,除了对c.Pack_ID,这是永远0。顺便说一句,从来没有一行Pack_ID是 is 0。这是 pgAdminIII 的屏幕截图,我希望它可以对问题有所了解:关于可能出什么问题的任何想法?我完全不知所措,在这里......
查看完整描述

1 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

您使用的结构标记似乎格式不正确。结构标记应采用以下形式:


name:"value"

但你所得到的是缺少围绕价值的引号:


name:value

尝试纠正这一点。否则,Go 中的 struct tag parser 就没有机会工作,因为它依赖于这些引号,如 struct tag parser implementation 中所见。


关于特定的结构标签:你确定你应该使用db?根据Gorm 文档,您可能想要使用gorm:"column:...". 我期待你的类型定义是:


type Chip struct {

    UUID    string `gorm:"column:uuid;primary_key"`

    URL     string `gorm:"column:url"`

    N       int    `gorm:"column:n"`

    Pack_ID int    `gorm:"column:pack_id"`

}


查看完整回答
反对 回复 2021-09-27
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信