GORM 2.0 获取最后插入ID

Gra*_*son 4 mysql sql go go-gorm

我正在使用GORM v 2.0操作 MySQL 数据库。我正在使用 GORM 事务 ( ) 将行插入数据库tx := db.Begin()。在以前的 GORM 版本中,Begin()返回的对象允许在查询返回参数上sql.Tx使用方法。LastInsertId()

要在 GORM v 2.0 中做到这一点,我可以在将db.Last()行插入数据库后简单地调用函数,或者我可以使用更智能的方法?

谢谢。

Chr*_*ian 6

在 V2.0 中该GetLastInsertId方法被删除。正如 @rustyx 所说,ID 填充在您传递Create函数的模型中。我不会费心打电话,db.Last(&...)因为当模型已经有了它时,这有点浪费。

    type User struct {
        gorm.Model
        Name string
    }

    user1 := User{Name: "User One"}

    _ = db.Transaction(func(tx *gorm.DB) error {
        tx.Create(&user1)
        return nil
    })

    // This is unnecessary
    // db.Last(&user1)

    fmt.Printf("User one ID: %d\n", user1.ID)

Run Code Online (Sandbox Code Playgroud)