猿问

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

我正在使用 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 的屏幕截图,我希望它可以对问题有所了解:

关于可能出什么问题的任何想法?我完全不知所措,在这里......


慕桂英3389331
浏览 137回答 1
1回答

jeck猫

您使用的结构标记似乎格式不正确。结构标记应采用以下形式: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"`}
随时随地看视频慕课网APP

相关分类

Go
我要回答