Effiziente Massendateneinfügung von CSV nach PostgreSQL mit Go (ohne For-Schleifen)
In Go bietet der Postgres COPY-Befehl eine effiziente Möglichkeit um Daten aus einer CSV-Datei massenhaft in eine PostgreSQL-Datenbank einzufügen. So erreichen Sie dies, ohne for-Schleifen zu verwenden:
Schritt 1: Datenbankverbindung herstellen
Stellen Sie eine Datenbankverbindung mithilfe der pgx-Bibliothek her. Dies ist wichtig für den Zugriff auf die Datenbank und das Ausführen von Befehlen.
Schritt 2: Öffnen Sie die CSV-Datei
Öffnen Sie die CSV-Datei mit den einzufügenden Daten. Stellen Sie sicher, dass Ihre Anwendung auf die Datei zugreifen kann.
Schritt 3: COPY-Befehl ausführen
Führen Sie die Methode PgConn().CopyFrom() aus, um die Datenübertragung zu initiieren die CSV-Datei in die Datenbanktabelle. Hier ist ein Beispiel:
<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>
Aufschlüsselung des Codes:
Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann man CSV-Daten mithilfe von Go Without For-Schleifen effizient massenhaft in PostgreSQL einfügen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!