为什么我的数据库列的值总是0?
Why is the value of my database column always 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
是 0
的行。
这是 pgAdminIII 的屏幕截图,我希望它能对问题有所启发:
关于可能出现的问题有什么想法吗?我完全不知所措,这里...
您使用的结构标签似乎格式不正确。结构标签 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"`
}
我正在使用 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
是 0
的行。
这是 pgAdminIII 的屏幕截图,我希望它能对问题有所启发:
关于可能出现的问题有什么想法吗?我完全不知所措,这里...
您使用的结构标签似乎格式不正确。结构标签 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"`
}