Go言語 データベース MySQL EXEC
https://github.com/go-sql-driver/mysqlを使っています。
$ go get github.com/go-sql-driver/mysql
go get
で取得してください。
ackage main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, _ := sql.Open("mysql", "<username>:<password>@/<database>")
defer db.Close()
tx, _ := db.Begin()
stmt, _ := tx.Prepare("update users set name='taro' where id = ?")
r, _ := stmt.Exec(1234)
id, _ := r.LastInsertId() // returns 0 when update
n, _ := r.RowsAffected()
fmt.Println(id, n)
}
RowsAffected
はupdate文
で影響を受けたレコードの数。
LastInsertId
はint64
なんだけど何が返ってくるのかな。
primary keyを設定していないテーブルにinsertしたら0が返ってきたよ。
あ、driverの実装依存か。