获取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
相关推荐
小二·2 小时前
Go 语言系统编程与云原生开发实战(第4篇):数据持久化深度实战 —— PostgreSQL、GORM 与 Repository 模式
postgresql·云原生·golang
女王大人万岁3 小时前
Go标准库 path 详解
服务器·开发语言·后端·golang
LuminescenceJ4 小时前
RPC通信中的Context上下文如何跨进程传递消息,gRPC为例分析
开发语言·网络·后端·网络协议·rpc·golang
码界奇点4 小时前
基于Beego v2与Go语言的网站管理后台系统设计与实现
开发语言·golang·毕业设计·go语言·源代码管理·beego
蒸蒸yyyyzwd4 小时前
go语言学习
开发语言·学习·golang
源代码•宸4 小时前
分布式理论基础——Raft算法
经验分享·分布式·后端·算法·golang·集群·raft
沈雅馨1 天前
SQL语言的云计算
开发语言·后端·golang
chillxiaohan1 天前
GO学习记录——动态创建测试http接口
学习·http·golang
小二·1 天前
Go 语言系统编程与云原生开发实战(第2篇):并发编程深度实战 —— Goroutine、Channel 与 Context 构建高并发 API 网关
开发语言·云原生·golang
闲谈共视1 天前
Go语言与区块链技术的渊源
开发语言·golang·区块链