Heim  >  Artikel  >  Backend-Entwicklung  >  Wie fügt man CSV-Daten massenhaft in PostgreSQL ein, indem man Go, GORM und die pgx-Bibliothek ohne Schleifen verwendet?

Wie fügt man CSV-Daten massenhaft in PostgreSQL ein, indem man Go, GORM und die pgx-Bibliothek ohne Schleifen verwendet?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 00:02:30203Durchsuche

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

Einfügen von CSV-Daten in PostgreSQL ohne For-Schleifen mit Go und GORM

In diesem Szenario haben Sie eine CSV-Datei mit Daten, die Sie massenhaft in eine PostgreSQL-Tabelle einfügen möchten unter Verwendung von Go und dem GORM ORM, ohne for-Schleifen oder SQL-Rohabfragen zu verwenden.

Die pgx-Bibliothek kann für diese Aufgabe verwendet werden, wie im folgenden Codeausschnitt gezeigt:

<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>

In dieser Code:

  1. Die pgx/v4- und pgxpool-Bibliotheken werden importiert, um mithilfe der Umgebungsvariablen DATABASE_URL einen Verbindungspool zur PostgreSQL-Datenbank einzurichten.
  2. Die CSV-Datei („foo.csv ") wird zum Lesen geöffnet.
  3. Die CopyFrom-Methode wird verwendet, um die CSV-Daten in die Tabelle csv_test zu kopieren. Das Argument (FORMAT csv) gibt das Datenformat an.
  4. Abschließend wird die Anzahl der vom Kopiervorgang betroffenen Zeilen auf der Konsole ausgegeben.

Das obige ist der detaillierte Inhalt vonWie fügt man CSV-Daten massenhaft in PostgreSQL ein, indem man Go, GORM und die pgx-Bibliothek ohne Schleifen verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn