如何从 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
来自 Exec
、Result
的 return 值并不意味着可以直接访问——它是一个对象,有两种调用方法,其中一种是 LastInsertId()
.
lastId, err := resultPost.LastInsertId()
if err != nil {
panic(err)
}
fmt.Println("LastInsertId: ", lastId)
我想使用 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)
问题是 resultPost
被打印为一个对象:
resultPost is: {0xc420242000 0xc4202403a0}
所以我想知道提取刚刚插入的行的 ID 的正确方法是什么?
看来您只需要:
resultPost.LastInsertId()
有关详细信息,请在 this documentation
中搜索 LastInsertId来自 Exec
、Result
的 return 值并不意味着可以直接访问——它是一个对象,有两种调用方法,其中一种是 LastInsertId()
.
lastId, err := resultPost.LastInsertId()
if err != nil {
panic(err)
}
fmt.Println("LastInsertId: ", lastId)