首页 > 后端开发 > Golang > 正文

如何在 GORM 2.0 中检索最后一个插入 ID?

Barbara Streisand
发布: 2024-10-26 13:24:28
原创
433 人浏览过

How to Retrieve the Last Insert ID in GORM 2.0?

如何在 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板