Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // BulkInsertRecords performs a postgres copy of bulk data
- func BulkInsertRecords(records chan []string) {
- dbb, _ := sql.Open("postgres", "postgres://postgres:postgres@localhost:5432/records?sslmode=disable")
- dbb.SetMaxIdleConns(5)
- dbb.SetMaxOpenConns(5)
- dbb.SetConnMaxLifetime(0)
- txn, err := dbb.Begin()
- if err != nil {
- log.Fatal(err)
- }
- stmt, _ := txn.Prepare(pq.CopyIn("records", "source", "origin", "destination", "date", "time", "details", "duration"))
- // fmt.Println(stmt)
- counter := 0
- for record := range records {
- _, err := stmt.Exec(record[0], record[1], record[2], record[3], record[4], record[5], record[6])
- if err != nil {
- log.Fatal(err)
- }
- counter = counter + 1
- }
- //Flush buffer
- _, err = stmt.Exec()
- if err != nil {
- log.Fatal(err)
- }
- err = stmt.Close()
- if err != nil {
- log.Fatal(err)
- }
- err = txn.Commit()
- if err != nil {
- log.Fatal(err)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement