如何在 GORM 中获取刚插入记录的主键 ID
发布时间 - 2026-01-23 00:00:00 点击率:次使用 gorm 的 `save()` 或 `create()` 方法插入数据后,gorm 会自动将数据库生成的主键(如 mysql 的 `auto_increment` 值)回填到结构体字段中,无需额外查询即可直接访问。
在基于 github.co

✅ 正确用法示例(GORM v1):
type User struct {
Id int `gorm:"primary_key"`
Name string
}
user := User{Name: "jinzhu"}
result := db.Create(&user)
if result.Error != nil {
log.Fatal(result.Error)
}
fmt.Println("新插入用户的 ID:", user.Id) // ✅ 此时 user.Id 已被自动填充⚠️ 注意事项:
- 主键字段必须可导出(首字母大写),且类型需与数据库列兼容(如 int, int64, uint, uint64);
- 若使用 Save(),GORM 会根据主键是否为零值判断执行 INSERT 或 UPDATE;确保新建实例主键为零值(如 int 类型默认为 0);
- 使用 Create() 更语义明确,专用于插入新记录,且会跳过零值主键校验;
- 若主键非自增(如 UUID),需手动赋值或使用钩子(BeforeCreate)生成;
- GORM v2(gorm.io/gorm)行为完全一致,仅导入路径和初始化方式不同,Create() 后同样自动回填主键。
? 总结:无需手动执行 SELECT LAST_INSERT_ID() 或额外 SELECT 查询——GORM 在底层已通过 sql.Result.LastInsertId() 安全获取并注入。这是 ORM 提升开发效率的关键特性之一,合理利用可显著简化代码逻辑并避免竞态风险。
# mysql
# git
# go
# github
# sql
# 封装
# select
# 结构体
# int
# 数据库
# 主键
# 为零
# 这是
# 已被
# 当你
# 此为
# 跳过
# 旧版
# 合理利用
# 默认为
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
原生JS实现图片轮播切换效果
Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
详解vue.js组件化开发实践
如何在宝塔面板中修改默认建站目录?
Laravel如何实现数据库事务?(DB Facade示例)
如何用狗爹虚拟主机快速搭建网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
Windows Hello人脸识别突然无法使用
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
香港网站服务器数量如何影响SEO优化效果?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
个人摄影网站制作流程,摄影爱好者都去什么网站?
如何在橙子建站中快速调整背景颜色?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
HTML 中动态设置元素 name 属性的正确语法详解
Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
如何在阿里云部署织梦网站?
如何快速搭建高效简练网站?
轻松掌握MySQL函数中的last_insert_id()
php打包exe后无法访问网络共享_共享权限设置方法【教程】
如何快速生成专业多端适配建站电话?
如何在香港免费服务器上快速搭建网站?
Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
大连 网站制作,大连天途有线官网?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
深圳网站制作平台,深圳市做网站好的公司有哪些?
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框
Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程
如何用西部建站助手快速创建专业网站?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
网站制作软件免费下载安装,有哪些免费下载的软件网站?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel如何实现API版本控制_Laravel版本化API设计方案
JS中对数组元素进行增删改移的方法总结
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
如何用wdcp快速搭建高效网站?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)

