获取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
相关推荐
源代码•宸14 小时前
简版抖音项目——项目需求、项目整体设计、Gin 框架使用、视频模块方案设计、用户与鉴权模块方案设计、JWT
经验分享·后端·golang·音视频·gin·jwt·gorm
nix.gnehc15 小时前
深入浅出 Go 内存管理(二):预分配、GC 与内存复用实战
golang
creator_Li15 小时前
Golang的Channel
golang·channel
nix.gnehc16 小时前
深入理解Go并发核心:GMP模型与Goroutine底层原理
开发语言·算法·golang
nix.gnehc17 小时前
深入浅出 Go 内存管理(一):三级缓存、逃逸分析与内存碎片
golang
nix.gnehc17 小时前
Go进阶攻坚+专家深耕级学习清单|聚焦高并发、高性能中间件/底层框架开发(Java开发者专属)
学习·中间件·golang
普通网友1 天前
PL/SQL语言的正则表达式
开发语言·后端·golang
一个处女座的程序猿O(∩_∩)O1 天前
Go语言Map值不可寻址深度解析:原理、影响与解决方案
开发语言·后端·golang
呆萌很2 天前
Go语言常用基本数据类型快速入门
golang