„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie importiere ich Daten von STDIN nach PostgreSQL mit dem pq-Paket von Go?

Wie importiere ich Daten von STDIN nach PostgreSQL mit dem pq-Paket von Go?

Veröffentlicht am 17.11.2024
Durchsuche:569

How to Import Data from STDIN to PostgreSQL Using Go\'s pq Package?

Wie importiere ich Zeilen von STDIN nach Postgresql? [Duplikat]

In Go können Sie mithilfe des pq-Pakets Zeilen aus STDIN in PostgreSQL importieren. Hier ist eine Schritt-für-Schritt-Lösung:

Schritt 1: Datenbankverbindung vorbereiten

import (
    "database/sql"

    "github.com/lib/pq"
)

db, err := sql.Open("postgres", "dbname=mydb user=myuser password=mypassword")
if err != nil {
    log.Fatalf("open: %v", err)
}

Schritt 2: Eine Transaktion starten

txn, err := db.Begin()
if err != nil {
    log.Fatalf("begin: %v", err)
}

Schritt 3: Vorbereiten der Kopieranweisung

Verwenden Sie pq.CopyIn(), um eine vorbereitete Anweisung zu erstellen.

stmt, err := txn.Prepare(pq.CopyIn("test_table", "column1", "column2", ...))
if err != nil {
    log.Fatalf("prepare: %v", err)
}

Schritt 4: Führen Sie die Kopieranweisung aus

Durchlaufen Sie Ihre Daten und führen Sie stmt.Exec() für jede Zeile aus.

for _, row := range rows {
    _, err = stmt.Exec(row.Column1, row.Column2, ...)
    if err != nil {
        log.Fatalf("exec: %v", err)
    }
}

Schritt 5: Endgültige Kopieranweisung ausführen

_, err = stmt.Exec()
if err != nil {
    log.Fatalf("exec: %v", err)
}

Schritt 6: Schließen Sie die Anweisung und bestätigen Sie die Transaktion

stmt.Close()
err = txn.Commit()
if err != nil {
    log.Fatalf("commit: %v", err)
}

Dieser Code importiert effizient Zeilen von STDIN in Ihre PostgreSQL-Tabelle.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729744624 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3