Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Memasukkan Data CSV Pukal ke dalam PostgreSQL Menggunakan Go, GORM dan Perpustakaan pgx Tanpa Gelung?

Bagaimana untuk Memasukkan Data CSV Pukal ke dalam PostgreSQL Menggunakan Go, GORM dan Perpustakaan pgx Tanpa Gelung?

Susan Sarandon
Susan Sarandonasal
2024-10-27 00:02:30307semak imbas

How to Bulk Insert CSV Data into PostgreSQL Using Go, GORM, and the pgx Library Without Loops?

Memasukkan Data CSV ke dalam PostgreSQL Tanpa For Loops Menggunakan Go dan GORM

Dalam senario ini, anda mempunyai fail CSV dengan data yang anda mahu masukkan secara pukal ke dalam jadual PostgreSQL menggunakan Go dan GORM ORM, tanpa menggunakan gelung atau pertanyaan mentah SQL.

Pustaka pgx boleh digunakan untuk tugas ini, seperti yang ditunjukkan dalam coretan kod berikut:

<code class="go">package main

import (
    "context"
    "database/sql"
    "fmt"
    "os"

    "github.com/jackc/pgx/v4/pgxpool"
)

func main() {
    filename := "foo.csv"
    dbconn, err := pgxpool.Connect(context.Background(), os.Getenv("DATABASE_URL"))
    if err != nil {
        panic(err)
    }
    defer dbconn.Close()

    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>

Dalam kod ini:

  1. Pustaka pgx/v4 dan pgxpool diimport untuk mewujudkan kumpulan sambungan ke pangkalan data PostgreSQL menggunakan pembolehubah persekitaran DATABASE_URL.
  2. Fail CSV ("foo.csv ") dibuka untuk dibaca.
  3. Kaedah CopyFrom digunakan untuk menyalin data CSV ke dalam jadual csv_test. Argumen (FORMAT csv) menentukan format data.
  4. Akhir sekali, bilangan baris yang terjejas oleh operasi salin dicetak ke konsol.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Data CSV Pukal ke dalam PostgreSQL Menggunakan Go, GORM dan Perpustakaan pgx Tanpa Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn