获取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
相关推荐
桂花很香,旭很美33 分钟前
[7天实战入门Go语言后端] Day 2:用 Go 写一个 HTTP 服务——net/http 入门
http·golang·xcode
我不是8神6 小时前
go-zero微服务框架总结
开发语言·微服务·golang
遇见你的雩风11 小时前
【Golang】--- Goroutine
开发语言·golang
YGGP12 小时前
【Golang】LeetCode 189. 轮转数组
开发语言·leetcode·golang
桂花很香,旭很美12 小时前
[7天实战入门Go语言后端] Day 3:项目结构与配置——目录组织、环境变量与 viper
开发语言·数据库·golang
桂花很香,旭很美13 小时前
[7天实战入门Go语言后端] Day 4:Go 数据层入门——database/sql 与简单 CRUD
数据库·sql·golang
qinaoaini1 天前
[golang][MAC]Go环境搭建+VsCode配置
vscode·macos·golang
花酒锄作田1 天前
Go - slog使用入门
golang
u***35741 天前
对基因列表中批量的基因进行GO和KEGG注释
开发语言·数据库·golang
好家伙VCC1 天前
# 发散创新:基于 Go 语言打造高性能服务网格的实践与突破在微服务架构
java·python·微服务·架构·golang