获取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
相关推荐
go不是csgo7 小时前
Go-GMP-调度器深度解析(改进版本)
java·linux·golang
知彼解己8 小时前
SQLite 核心实战:后端工程师视角
后端·golang·ai编程
dusk_star8 小时前
go语言--笔记--接口
java·笔记·golang
会编程的土豆9 小时前
前端和后端是怎么配合工作的(Go后端视角)
前端·golang·状态模式
只会写bug的靓仔9 小时前
我把 Electron+Go 的 LOL 战绩工具重写成 Tauri+Rust,安装包从 128 MB 砍到 5 MB
golang·rust·electron
会编程的土豆20 小时前
Go 语言反射(Reflection)详解
开发语言·后端·golang
basketball61621 小时前
Go 语言从入门到进阶:4. 数组和MAP使用方法总结
开发语言·后端·golang
Generalzy1 天前
从本地 Demo 到生产级检索:Milvus 学习笔记(1)
golang·prompt·软件工程
go不是csgo1 天前
GORM 上手:一个 main.go 跑通 Go 数据库增删改查
jvm·数据库·golang
知彼解己1 天前
RAG 核心实战:检索增强生成
后端·golang·ai编程