如何从sqlx获取最后插入行的id?

Kar*_*lom 3 mysql sql go sql-insert sqlx

我想使用以下方法取回插入 MySql 数据库的最后一篇文章的 id sqlx

resultPost, err := shared.Dbmap.Exec("INSERT INTO post (user_id, description, link) VALUES (?, ?, ?)", userID, title, destPath)
if err != nil {
    log.Println(err)
    c.JSON(
        http.StatusInternalServerError,
        gin.H{"error": "internal server error"})
}

fmt.Println("resultPost is:", resultPost)
Run Code Online (Sandbox Code Playgroud)

问题是 被resultPost打印为对象:

resultPost is: {0xc420242000 0xc4202403a0}
Run Code Online (Sandbox Code Playgroud)

所以我想知道提取刚刚插入的行的 id 的正确方法是什么?

Fli*_*mzy 5

Exec,的返回值Result并不意味着可以直接访问——它是一个有两个方法可以调用的对象,其中之一是LastInsertId().

lastId, err := resultPost.LastInsertId()
if err != nil {
    panic(err)
}
fmt.Println("LastInsertId: ", lastId)
Run Code Online (Sandbox Code Playgroud)

  • 固定的。学习直接阅读文档对你自己来说是一个很大的帮助:) (3认同)