使用 gorm 的 `save()` 或 `create()` 方法插入数据后,gorm 会自动将数据库生成的主键(如 mysql 的 `auto_increment` 值)回填到结构体字段中,无需额外查询即可直接访问。
在基于 github.com/jinzhu/gorm(注意:此为旧版 GORM v1;新版为 gorm.io/gorm,但原理一致)的 MySQL 应用中,当你执行一次插入操作时,

✅ 正确用法示例(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 已被自动填充⚠️ 注意事项:
? 总结:无需手动执行 SELECT LAST_INSERT_ID() 或额外 SELECT 查询——GORM 在底层已通过 sql.Result.LastInsertId() 安全获取并注入。这是 ORM 提升开发效率的关键特性之一,合理利用可显著简化代码逻辑并避免竞态风险。