Undefined Title

Undefined Title

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)
}

RowsAffectedupdate文で影響を受けたレコードの数。

LastInsertIdint64なんだけど何が返ってくるのかな。 primary keyを設定していないテーブルにinsertしたら0が返ってきたよ。 あ、driverの実装依存か。