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