GORM的Create返回主键ID疑惑
1. 运行环境
go version go1.20.4 windows/amd64
2. 问题描述?
gorm.Create()插入的主键ID是怎么实现的?代码如下
stud := &model.Student{
Name: "helen",
Gender: 2,
Age: 30,
}
res := db.Create(stud)
fmt.Println(stud.Id, res.RowsAffected)
mysql8.0的执行如下
没有用到连接级的SELECT LAST_INSERT_ID();
是如何实现insert + select的呢?
gorm这个create返回主键会有并发串数据的问题吗?
3. 您期望得到的结果?
INSERT xxx;
SELECT LAST_INSERT_ID();
4. 您实际得到的结果?
INSERT xxx;
这是MySQL协议里面支持插入返回last_insert_id ,不需要显式去执行
这个应该是go的标准库提供的吧
有没有遇到使用gorm.db.create() 创建后的数据没有返回id的情况?