Maison >développement back-end >Golang >Comment importer des lignes dans PostgreSQL depuis STDIN à l'aide de Go ?

Comment importer des lignes dans PostgreSQL depuis STDIN à l'aide de Go ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-24 16:06:01405parcourir

How to Import Rows into PostgreSQL from STDIN Using Go?

Importation de lignes dans PostgreSQL depuis STDIN à l'aide de Go

Dans Go, vous pouvez importer des lignes dans PostgreSQL à partir de l'entrée standard (STDIN) à l'aide de pq emballer. Cette approche alimente directement les données dans la base de données sans avoir besoin de fichiers intermédiaires.

Pour réaliser une importation directe de lignes depuis STDIN, suivez ces étapes :

  1. Ouvrez une connexion PostgreSQL :Établissez une connexion à votre base de données PostgreSQL à l'aide de la fonction sql.Open.
  2. Commencer une transaction : Initiez une transaction de base de données à l'aide de la fonction Begin pour regrouper plusieurs instructions.
  3. Préparer l'instruction de copie : Créez une instruction préparée pour copier les données à l'aide de pq.CopyIn. Cette instruction spécifie le nom de la table cible et les colonnes à importer.
  4. Importer des lignes : Exécutez l'instruction préparée de manière itérative pour chaque ligne de données que vous souhaitez importer. Utilisez la fonction Exec pour envoyer chaque ligne à la base de données.
  5. Terminer l'instruction de copie : Après avoir ajouté toutes les lignes, exécutez à nouveau l'instruction préparée sans aucun argument pour finaliser le processus d'importation.
  6. Fermer l'instruction préparée : Libérez les ressources associées à l'instruction préparée en appelant la méthode Close.
  7. Commit Transaction : Validez la transaction pour rendre les modifications permanentes dans la base de données.

Exemple de code :

Voici un exemple de code qui illustre l'importation de lignes depuis STDIN à l'aide de Go :

<code class="go">package main

import (
    "database/sql"
    "fmt"
    "io"
    "log"

    "github.com/lib/pq"
)

func main() {
    db, err := sql.Open("postgres", "host=localhost port=5432 user=postgres password=mysecret dbname=mydatabase")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    rows := [][]string{
        {"Rob", "Pike"},
        {"Ken", "Thompson"},
        {"Robert", "Griesemer"},
    }

    txn, err := db.Begin()
    if err != nil {
        log.Fatal(err)
    }

    stmt, err := txn.Prepare(pq.CopyIn("test", "first_name", "last_name"))
    if err != nil {
        log.Fatal(err)
    }

    for _, r := range rows {
        if _, err = stmt.Exec(r[0], r[1]); err != nil {
            log.Fatal(err)
        }
    }

    if _, err = stmt.Exec(); err != nil {
        log.Fatal(err)
    }

    if err = stmt.Close(); err != nil {
        log.Fatal(err)
    }

    if err = txn.Commit(); err != nil {
        log.Fatal(err)
    }

    fmt.Println("Rows imported successfully.")
}</code>

En suivant ces étapes et en utilisant le package pq, vous pouvez importer efficacement des données dans PostgreSQL directement depuis STDIN dans vos programmes Go.

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