gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:27:56 27 4
gpt4 key购买 nike

我正在使用 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_ID0 的行。

这是 pgAdminIII 的屏幕截图,我希望它能对问题有所启发:

enter image description here

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

最佳答案

您使用的结构标签似乎格式不正确。结构标签 should be of the form :

name:"value"

但是您得到的是缺少值周围的引号:

name:value

尝试更正此问题。否则,Go 中的结构标记解析器没有机会工作,因为它依赖于那些引号,as seen in the struct tag parser implementation。 .

关于特定的结构标签:你确定你应该使用 db 吗?根据Gorm documentation ,您可能想使用 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"`
}

关于postgresql - 为什么我的数据库列的值总是0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29334915/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com