Maison  >  Article  >  développement back-end  >  Comment importer des données de STDIN vers PostgreSQL à l'aide du package pq de Go ?

Comment importer des données de STDIN vers PostgreSQL à l'aide du package pq de Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-24 18:34:31887parcourir

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

Comment importer des lignes vers Postgresql depuis STDIN ? [duplicata]

Dans Go, vous pouvez importer des lignes vers PostgreSQL depuis STDIN à l'aide du package pq. Voici une solution étape par étape :

Étape 1 : Préparer la connexion à la base de données

<code class="go">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)
}</code>

Étape 2 : Démarrer une transaction

<code class="go">txn, err := db.Begin()
if err != nil {
    log.Fatalf("begin: %v", err)
}</code>

Étape 3 : Préparer l'instruction Copy

Utilisez pq.CopyIn() pour créer une instruction préparée.

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

Étape 4 : Exécutez l'instruction Copy

Parcourez vos données et exécutez stmt .Exec() pour chaque ligne.

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

Étape 5 : Exécuter la déclaration de copie finale

<code class="go">_, err = stmt.Exec()
if err != nil {
    log.Fatalf("exec: %v", err)
}</code>

Étape 6 : Fermer la déclaration et valider la transaction

<code class="go">stmt.Close()
err = txn.Commit()
if err != nil {
    log.Fatalf("commit: %v", err)
}</code>

Ce code importera efficacement les lignes de STDIN vers votre table PostgreSQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn