"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo importar datos de STDIN a PostgreSQL usando el paquete pq de Go?

¿Cómo importar datos de STDIN a PostgreSQL usando el paquete pq de Go?

Publicado el 2024-11-17
Navegar:881

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

¿Cómo importo filas a Postgresql desde STDIN? [duplicado]

En Go, puede importar filas a PostgreSQL desde STDIN usando el paquete pq. Aquí hay una solución paso a paso:

Paso 1: preparar la conexión de la base de datos

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)
}

Paso 2: Iniciar una transacción

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

Paso 3: Prepare la declaración de copia

Utilice pq.CopyIn() para crear una declaración preparada.

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

Paso 4: Ejecute la declaración de copia

Repita sus datos y ejecute stmt.Exec() para cada fila.

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

Paso 5: Ejecutar la declaración de copia final

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

Paso 6: cerrar el estado de cuenta y confirmar la transacción

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

Este código importará eficientemente filas desde STDIN a su tabla PostgreSQL.

Declaración de liberación Este artículo se reimprime en: 1729744624 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3