比如添加完一个用户,我马上就要知道这个user的ID,其中在数据库中这个ID是自增的。这个功能用原生的mysql是很好实现的,在其它orm上也提供有简单方法获取,但是看了一遍gorm文档居然没发现怎么获取的。。。。。。求大神们支招。
1.结构体中带个id字段
2.用原生的sql接口,Result有个LastInsertId
1.结构体中带个id字段
2.用原生的sql接口,Result有个LastInsertId
你好,小弟不才,请问你写的1和2是两种方法,还是两个步骤?
1.结构体中带个id字段
2.用原生的sql接口,Result有个LastInsertId你好,小弟不才,请问你写的1和2是两种方法,还是两个步骤?
两种方法
用uuid才是最佳实践,获取自增id要多操作一次数据库,还要加锁
type Job struct {
gorm.Model
Name string
}
func CreateJob(job *Job) error {
db := db.Create(job)
if err := db.Error; err != nil {
log.WithError(err).Error("error create Job")
return err
}
job = db.Value.(*Job)
return nil
}
func test() {
job := &Job{
Name: "test",
}
err := CreateJob(job)
if err == nil {
fmt.Println(job.ID)
}
}
用uuid才是最佳实践,获取自增id要多操作一次数据库,还要加锁
Yes, you are doing the right thing.