準備
go get github.com/mattn/go-sqlite3
サンプル
- sqlite3 - Instantiating an sqlite database with go? - Stack Overflow
- 90H Tech: SQLiteでTIMESTAMP列のデフォルト値のタイムゾーンをJSTにする
memo.go
package main
import (
"database/sql"
"log"
_ "github.com/mattn/go-sqlite3"
)
func execDB(db *sql.DB, q string) {
if _, err := db.Exec(q); err != nil {
log.Fatal(err)
}
}
func main() {
db, err := sql.Open("sqlite3", "./data.db")
if err != nil {
log.Fatal(err)
}
q := `
CREATE TABLE memo (
id INTEGER PRIMARY KEY AUTOINCREMENT,
body VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT (DATETIME('now','localtime'))
)
`
execDB(db, q)
q = `
INSERT INTO memo(body)
VALUES ('body1'), ('body2')
`
execDB(db, q)
db.Close()
}
実行
$ go run memo.go
$ echo "SELECT * FROM memo;" | sqlite3 ./data.db
1|body1|2016-03-19 08:00:51
2|body2|2016-03-19 08:00:51
(メモ)型情報を調べる
hogeの型を調べたい場合
package main
import (
"fmt"
"reflect"
)
func main() {
fmt.Println(reflect.TypeOf(hoge))
}