首页 > 后端开发 > Golang > 正文

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

Barbara Streisand
发布: 2024-10-26 06:54:30
原创
637 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!