地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

Goでバルクインサート

社内ポッドキャストを聞いていたら出てきた単語で一度のinsertで複数のデータをまとめてDBに入れるやつ。 GO入門中でそういえばまだやってないなと思って調べたのでメモ書き。自宅にMySQL環境が用意されたので今後も色々遊んでいこう。

        query := `
        INSERT INTO items(
                name,
                price
        ) VALUES
        `

        n := []string{
                "aaa",
                "bbb",
                "ccc1",
                "ccc2",
                "ccc3",
                "ccc5",
                "ccc6",
        }
        var values []string
        for _, a := range n {
                val := fmt.Sprintf("('%s', %d)", a, 111)
                values = append(values, val)
        }
        query += strings.Join(values, ",")
        fmt.Println(query)
        _, err = db.Exec(query)
        if err != nil {
                panic(err)

        }