使用 Go 从 CSV 到 PostgreSQL 的高效批量数据插入(无需 For 循环)
在 Go 中,Postgres COPY 命令提供了一种高效的方法将 CSV 文件中的数据批量插入到 PostgreSQL 数据库中。以下是如何在不使用任何 for 循环的情况下实现此目的:
第 1 步:建立数据库连接
使用 pgx 库建立数据库连接。这对于访问数据库和执行命令至关重要。
第 2 步:打开 CSV 文件
打开包含要插入的数据的 CSV 文件。确保您的应用程序可以访问该文件。
第 3 步:执行 COPY 命令
执行 PgConn().CopyFrom() 方法以启动数据传输将 CSV 文件添加到数据库表中。这是一个示例:
<code class="go">import ( "context" "fmt" "io" "github.com/jackc/pgx/v4/pgxpool" ) const query = "COPY csv_test FROM STDIN (FORMAT csv)" func main() { dbpool, err := pgxpool.Connect(context.Background(), os.Getenv("DATABASE_URL")) if err != nil { panic(err) } defer dbpool.Close() f, err := os.Open("foo.csv") if err != nil { panic(err) } defer f.Close() res, err := dbpool.Conn().PgConn().CopyFrom(context.Background(), f, query) if err != nil { panic(err) } fmt.Print(res.RowsAffected()) }</code>
代码细分:
好处:
以上是如何使用 Go 不使用 For 循环高效地将 CSV 数据批量插入到 PostgreSQL 中?的详细内容。更多信息请关注PHP中文网其他相关文章!