获取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
相关推荐
foxsen_xia6 小时前
Go安装、配置和vsCode配置Go
开发语言·vscode·golang
稚辉君.MCA_P8_Java8 小时前
Gemini永久会员 go数组中最大异或值
数据结构·后端·算法·golang·哈希算法
想搞艺术的程序员10 小时前
Go 语言 interface 详解:从源码到实践
golang·interface
foxsen_xia10 小时前
go(基础01)——协程
开发语言·算法·golang
源代码•宸10 小时前
GoLang并发简单例子(goroutine + channel + WaitGroup)
开发语言·经验分享·后端·学习·golang
稚辉君.MCA_P8_Java10 小时前
Gemini永久会员 Go 返回最长有效子串长度
数据结构·后端·算法·golang
前端之虎陈随易11 小时前
基于Go重写的TypeScript 7可以用了
开发语言·golang·typescript
未来之窗软件服务14 小时前
操作系统应用(三十六)golang语言ER实体图开发—东方仙盟筑基期
后端·golang·mermaid·仙盟创梦ide·东方仙盟·操作系统应用
styshoo15 小时前
Go语言垃圾回收机制详解
golang·gc·垃圾收集