首页  >  文章  >  后端开发  >  如何使用 Golang 不使用 for 循环将 CSV 文件插入到 PostgreSQL 中?

如何使用 Golang 不使用 for 循环将 CSV 文件插入到 PostgreSQL 中?

Barbara Streisand
Barbara Streisand原创
2024-10-26 06:54:30616浏览

How do I insert a CSV file into PostgreSQL using Golang without for loops?

使用 Golang Sans For 循环将 CSV 批量插入 PostgreSQL

如果您是 Golang 新手,希望将 CSV 数据插入 PostgreSQL 表而不使用 for 循环或原始 SQL 查询,pgx 是您的解决方案。操作方法如下:

  1. 导入 pgx:首先导入 pgx,PostgreSQL 的数据库接口。
<code class="go">import (
    "context"
    "fmt"
    "os"

    "github.com/jackc/pgx/v4"
)</code>
  1. 建立数据库连接:使用 pgx.Connect() 连接到您的 PostgreSQL 数据库。
<code class="go">dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
if err != nil {
    panic(err)
}
defer dbconn.Release()</code>
  1. 打开 CSV 文件:加载您想要的 CSV 文件
<code class="go">f, err := os.Open(filename)
if err != nil {
    panic(err)
}
defer func() { _ = f.Close() }()</code>
  1. 执行批量插入:利用 CopyFrom() 将 CSV 文件批量插入到名为“csv_test”的表中。
<code class="go">res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)")
if err != nil {
    panic(err)
}</code>
  1. 显示结果:打印批量插入影响的行数。
<code class="go">fmt.Print(res.RowsAffected())</code>

就是这样!使用 pgx,您可以快速高效地将大量 CSV 数据插入到 PostgreSQL 数据库中,无需手动循环或复杂的查询。

以上是如何使用 Golang 不使用 for 循环将 CSV 文件插入到 PostgreSQL 中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn