Golang : PGX CopyFrom to insert rows into Postgres database

Here is an example of how to use PGX's CopyFrom function to insert rows into Postgres database. The HScodes table is for my own reference, you will need to substitute it with your own table and struct.

Here you go!

 type HScodes struct {
  Sid int `json:"sid" db:"sid"`
  HScode  string `json:"name" db:"hscode"`
  Keyword string `json:"value" db:"keyword"`

 var dataToInsert []models.HScodes

 rowsToInsert := [][]interface{}{}

 for i := 0; i < len(dataToInsert); i++ {
  row := []interface{}{dataToInsert[i].HScode, dataToInsert[i].Keyword}
  rowsToInsert = append(rowsToInsert, row)

 copyCount, err := database.WrapCopyFrom(ctx, pgx.Identifier{"hscodes"},
  []string{"hscode", "keyword"},

Happy coding!

Reference :


  See also : Golang : Trim everything onward after a word

By Adam Ng

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.