gorm raw 原生查询报错 unsupported destination 解决方法
使用 gorm 执行原生查询时,遇到 unsupported destination, should be slice or struct 的错误,表明无法将查询结果扫描到指定的变量中。
错误的根源在于,gorm 的 raw 方法专为以表结构为目标的查询而设计,要求 destination 必须是一个切片或结构体,以映射查询结果和表结构。然而,select database() 查询不涉及表结构,因此与 gorm 的映射机制不兼容。
要解决此问题,可以使用原生 go sql 方法 queryrow,它可以直接从底层数据库连接查询单个行。为此,需要使用 *gorm.db 结构体的 db() 方法获取原生 *sql.db 连接:
func showCurrentDb() { var database string persistence.GetDB().DB().QueryRow("select database()").Scan(&database) fmt.Println("database ", database) }
以上就是Gorm Raw 查询报错 unsupported destination 如何解决?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com