【Go】dbrでinsertしてlast_insert_idを取得する
dbrを使ったdb処理でinsertしてオートインクリメント値を取得したいということ。
READMEみてもよくわからなかったけど、コードみたらLastInsertIdというのがあった。
package main
import (
"fmt"
"strconv"
_ "github.com/go-sql-driver/mysql"
"github.com/gocraft/dbr"
)
type Member struct {
Id int64 `db:"id"`
Name string `db:"name"`
Email string `db:"email"`
Created dbr.NullTime `db:"created"`
}
connection, err := dbr.Open("mysql", "USER_NAME:PASSWORD@tcp(HOSTNAME:PORT")/DB_NAME", nil)
if err != nil {
panic(err)
}
session := connection.NewSession(nil)
member := Member{
Name: "テスト",
Email: "test@example.com",
Created: dbr.NullTime{time.Now(), true}
}
result, err := session.InsertInto("members").
Columns("name", "email", "created").
Record(member).
Exec()
if err != nil {
panic(err)
}
id, err := result.LastInsertId()
if err != nil {
panic(err)
}
fmt.Println(id) // => オートインクリメント値以上です