使用Go 不使用For 循環將CSV 批次插入PostgreSQL
將CSV 檔案中的大量資料插入PostgreSQL 資料庫可以使用for 循環時會很耗時。更有效的方法是利用 pgx 函式庫來執行批次複製操作。
使用pgx 進行批次插入
要實現此目的,您可以按照以下步驟操作:
程式碼範例
下面的Go 程式碼示範如何批次插入資料使用pgx 將CSV 檔案插入PostgreSQL 資料庫:
<code class="go">import ( "context" "fmt" "os" "github.com/jackc/pgx/v5" ) func main() { 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()) }</code>
以上是如何使用 Go 在不使用 for 迴圈的情況下有效地將 CSV 檔案中的資料批次插入到 PostgreSQL 中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!