Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich mit Golang eine CSV-Datei ohne For-Schleifen in PostgreSQL ein?

Wie füge ich mit Golang eine CSV-Datei ohne For-Schleifen in PostgreSQL ein?

Barbara Streisand
Barbara StreisandOriginal
2024-10-26 06:54:30616Durchsuche

How do I insert a CSV file into PostgreSQL using Golang without for loops?

Masseneinfügung von CSV in PostgreSQL mithilfe von Golang Sans For-Schleifen

Wenn Sie ein Golang-Neuling sind und CSV-Daten in eine PostgreSQL-Tabelle einfügen möchten, ohne auf For-Schleifen zurückzugreifen oder Für alle Roh-SQL-Abfragen ist pgx Ihre Lösung. So geht's:

  1. pgx importieren: Beginnen Sie mit dem Importieren von pgx, einer Datenbankschnittstelle für PostgreSQL.
<code class="go">import (
    "context"
    "fmt"
    "os"

    "github.com/jackc/pgx/v4"
)</code>
  1. Datenbankverbindung herstellen: Stellen Sie mit pgx.Connect() eine Verbindung zu Ihrer PostgreSQL-Datenbank her.
<code class="go">dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
if err != nil {
    panic(err)
}
defer dbconn.Release()</code>
  1. CSV-Datei öffnen: Laden Sie die gewünschte CSV-Datei importieren.
<code class="go">f, err := os.Open(filename)
if err != nil {
    panic(err)
}
defer func() { _ = f.Close() }()</code>
  1. Masseneinfügung durchführen: Verwenden Sie CopyFrom(), um eine Masseneinfügung aus der CSV-Datei in eine Tabelle mit dem Namen „csv_test“ durchzuführen.
<code class="go">res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)")
if err != nil {
    panic(err)
}</code>
  1. Ergebnis anzeigen: Anzahl der von der Masseneinfügung betroffenen Zeilen drucken.
<code class="go">fmt.Print(res.RowsAffected())</code>

Das ist es! Mit pgx können Sie schnell und effizient große Mengen an CSV-Daten in Ihre PostgreSQL-Datenbank einfügen, ohne dass manuelle Schleifen oder komplexe Abfragen erforderlich sind.

Das obige ist der detaillierte Inhalt vonWie füge ich mit Golang eine CSV-Datei ohne For-Schleifen in PostgreSQL ein?. 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