Как получить идентификатор последней вставленной строки из sqlx? - PullRequest
0 голосов
/ 31 декабря 2018

Я хотел бы получить идентификатор последнего сообщения, вставленного в базу данных MySql, используя 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}

Поэтому мне интересно, как правильно извлечь идентификатор только что вставленной строки?

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Возвращаемое значение из Exec, Result не предназначено для прямого доступа - это объект с двумя вызываемыми методами, один из которых LastInsertId().

lastId, err := resultPost.LastInsertID()
if err != nil {
    panic(err)
}
fmt.Println("LastInsertId: ", lastId)
0 голосов
/ 31 декабря 2018

Похоже, вам просто нужно:

resultPost.LastInsertId()

Для получения дополнительной информации найдите LastInsertId в этой документации

...