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) }
登录后复制
© 版权声明
文章版权归作者所有,未经允许请勿转载。
【小浪云服务商 - 服务器12元起 - 挂机宝5元起】
THE END
暂无评论内容