我是 Golang 的新手,

  • 我有一个 csv 文件,其中的数据看起来像这样
field1,field2
1.1,2
1.2,3
1.3,2
  • 我想使用 golang 将所有 csv 数据插入到 db 表中而不使用 for 循环..我正在使用 postgres 数据库

也不想使用 sql 原始查询

我正在使用 gorm ORM

回答
    filename := "foo.csv"
    dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
    if err != nil {
        panic(err)
    }
    defer dbconn.Release()
    f, err := os.Open(filename)
    if err != nil {
        panic(err)
    }
    defer func() { _ = f.Close() }()
    res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)")
    if err != nil {
        panic(err)
    }
    fmt.Print(res.RowsAffected())