在使用带有MySQL数据库的GORM时,我在从一个相当简单的查询返回数据时遇到了问题.
var newPrsPk struct {
presentation_pk int `gorm:"column:presentation_pk"`
}
db.Raw("select max(presentation_pk) as presentation_pk from presentation").Scan(&newPrsPk)
log.Println(newPrsPk)
log.Println(newPrsPk.presentation_pk)
这将产生以下输出:
[2023-06-16 09:53:27] [43.29ms] select max(presentation_pk) as presentation_pk from presentation
[1 rows affected or returned ]
2023/06/16 09:53:27 {0}
2023/06/16 09:53:27 0
但是,0绝对不是该列的最大值,并且在MySQL工作台中运行查询将返回适当的值,因此我必须假设我编写这段代码的方式有问题.
GORM的文档并不令人惊讶,但这是一个非常简单的查询,所以我很困惑.
"Presentation_pk"是我的表中的一个自动递增的int字段,该查询紧跟在GORM CREATE()函数之后(因为似乎没有从MySQL返回自动递增的字段的方法).鉴于我看不到任何显式的"提交"函数,我假设GORM自动提交更改,并且这不是一个并发问题.
任何帮助都将不胜感激.