如何在 GORM 2.0 中检索上次插入 ID
在早期的 GORM 版本中,Begin() 方法返回一个 sql.Tx 对象,该对象启用使用 LastInsertId() 方法检索最后一个插入 ID。不过,在 GORM 2.0 中,该方法已被删除。
在 GORM 2.0 中获取最后一个插入 ID
在 GORM 2.0 中有两种方法可以获取最后一个插入 ID :
1。使用 db.Last():
向数据库插入一行后,可以调用 db.Last() 函数。这将使用新分配的 ID 填充模型:
<code class="go"> type User struct { gorm.Model Name string } user1 := User{Name: "User One"} _ = db.Transaction(func(tx *gorm.DB) error { tx.Create(&user1) return nil }) db.Last(&user1) fmt.Printf("User one ID: %d\n", user1.ID)</code>
2。直接访问模型的ID:
或者,您可以在插入后直接访问模型的ID字段。 ID会在插入操作时自动填充:
<code class="go"> type User struct { gorm.Model Name string } user1 := User{Name: "User One"} _ = db.Transaction(func(tx *gorm.DB) error { tx.Create(&user1) return nil }) fmt.Printf("User one ID: %d\n", user1.ID)</code>
推荐:
建议使用第二种方法(直接访问模型的ID)因为它消除了额外的 db.Last() 调用的需要。这可以提高性能,特别是对于大容量插入操作。
以上是如何在 GORM 2.0 中检索最后一个插入 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!