获取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
相关推荐
U盘失踪了8 小时前
Go 结构体
笔记·golang
贺小涛14 小时前
python和golang进程、线程、协程区别
java·python·golang
迷茫运维路16 小时前
云枢运维管理系统
运维·golang·kubernetes·gin·casbin
jieyucx16 小时前
Go 语言运算符与控制台输入输出详解
开发语言·后端·golang
userxxcc19 小时前
Waigo是用“Golang+Web”写的“视图窗口+稳定服务”的桌面端(Win、Mac、Ubuntu)多功能程序基座。开箱即用但有一定上手门槛。
javascript·golang·桌面应用基座·wails3
geovindu19 小时前
go: Prototype Pattern
开发语言·设计模式·golang·原型模式
codeejun20 小时前
每日一Go-55、分布式 ID 生成(雪花算法 / Segment / Redis / DB)
数据库·分布式·golang
Tomhex1 天前
Go容易出错的地方总结
golang
techdashen1 天前
Go 标准库 JSON 包迎来重大升级:encoding/json/v2 实验版来了
开发语言·golang·json
银色火焰战车2 天前
浅析golang中的垃圾回收机制(GC)
java·jvm·golang