获取GORM执行时的sql字符串

示例:

go 复制代码
import "log"
func GetDetail(tx *gorm.DB,id int)(data any,err error){
	var query = tx.Session(&gorm.Session{DryRun: true})
	err = query.Where("id = ?", id).First(&res).Error
	if err!=nil{
		zap.L().Error("get detail error",zap.Error(err),zap.String("sql",query.Statement.SQL.String()))
	}
}

注意事项:

  1. 执行前需要事先声明Session,将DryRun设置为true
  2. 执行完First、Find、Delete 等方法后才能拿到SQL
相关推荐
咬_咬8 分钟前
go语言学习(函数)
开发语言·学习·golang
初心未改HD1 小时前
Go语言Goroutine与Channel深度解析
开发语言·golang
初心未改HD1 小时前
Go语言Context深度解析与工程实践
开发语言·golang
geovindu5 小时前
go: Visitor Pattern
开发语言·设计模式·golang·访问者模式
会编程的土豆10 小时前
洛谷题单入门1 顺序结构
数据结构·算法·golang
亿牛云爬虫专家18 小时前
Go爬虫进阶:如何优雅地在Colly框架中实现无缝代理切换?
爬虫·中间件·golang·爬虫代理·colly框架·代理切换·api提取
会编程的土豆20 小时前
洛谷题单 入门1 顺序结构(go语言)
开发语言·后端·golang·洛谷
jieyucx20 小时前
Go 语言 switch 条件语句详解
开发语言·c++·golang
初心未改HD20 小时前
Go语言defer机制深度解析
开发语言·golang
不甘先生1 天前
Go 包引用架构指南:从 internal 隔离到破解循环依赖的实战手册
架构·golang