使用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中文網其他相關文章!