"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como importar dados de STDIN para PostgreSQL usando o pacote pq do Go?

Como importar dados de STDIN para PostgreSQL usando o pacote pq do Go?

Publicado em 17/11/2024
Navegar:980

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

Como faço para importar linhas para o Postgresql do STDIN? [duplicado]

Em Go, você pode importar linhas para PostgreSQL de STDIN usando o pacote pq. Aqui está uma solução passo a passo:

Etapa 1: preparar a conexão do banco de dados

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

Etapa 2: iniciar uma transação

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

Etapa 3: preparar a instrução de cópia

Use pq.CopyIn() para criar uma instrução preparada.

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

Etapa 4: Execute a instrução de cópia

Itere seus dados e execute stmt.Exec() para cada linha.

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

Etapa 5: Executar a instrução de cópia final

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

Etapa 6: feche o extrato e confirme a transação

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

Este código importará com eficiência linhas de STDIN para sua tabela PostgreSQL.

Declaração de lançamento Este artigo foi reimpresso em: 1729744624 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3