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

Susan Sarandon
Lepaskan: 2024-10-27 00:02:30
asal
202 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!