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

How to get id of last inserted row from sqlx?

我想使用 sqlx:

取回插入 MySql 数据库的最后一个 post 的 ID
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)

问题是 resultPost 被打印为一个对象:

resultPost is: {0xc420242000 0xc4202403a0}

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

看来您只需要:

resultPost.LastInsertId()

有关详细信息,请在 this documentation

中搜索 LastInsertId

来自 ExecResult 的 return 值并不意味着可以直接访问——它是一个对象,有两种调用方法,其中一种是 LastInsertId().

lastId, err := resultPost.LastInsertId()
if err != nil {
    panic(err)
}
fmt.Println("LastInsertId: ", lastId)