获取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
相关推荐
ttwuai1 天前
Go开源后台管理系统推荐:怎么按技术栈和边界比较4个官方仓库?
golang·gin
codeejun1 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
Achou.Wang1 天前
k8s中nginx worker process自动设置
后端·golang
指尖的爷2 天前
ARM 架构 Ubuntu(RK3588/aarch64)go开发环境安装手册
ubuntu·架构·golang
名字还没想好☜2 天前
Go 实现指数退避重试:context 取消、抖动 jitter 与什么时候别重试
后端·golang·go
Casbin开源社区2 天前
OpenAgent 详解:单二进制自托管 AI Agent 平台,30+ 模型接入、RAG 知识库、MCP 工具调用与 Casbin 工具权限
人工智能·golang·开源
五彩小白3 天前
GO语言装饰器语法
golang
金金计较.3 天前
Go语言-4
开发语言·golang
名字还没想好☜4 天前
Go context.AfterFunc 实战(Go 1.21):context 一取消就自动跑清理,告别手写 goroutine 监听 Done
后端·golang·go
web守墓人4 天前
【goed/ui】自定义组件设计思想篇
linux·windows·ui·golang