Gorm Raw 查询报错 unsupported destination 如何解决?

Gorm Raw 查询报错 unsupported destination 如何解决?

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) }
登录后复制

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容