«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как импортировать данные из STDIN в PostgreSQL с помощью пакета Go pq?

Как импортировать данные из STDIN в PostgreSQL с помощью пакета Go pq?

Опубликовано 17 ноября 2024 г.
Просматривать:848

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

Как импортировать строки в Postgresql из STDIN? [дубликат]

В Go вы можете импортировать строки в PostgreSQL из STDIN с помощью пакета pq. Вот пошаговое решение:

Шаг 1. Подготовьте подключение к базе данных

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

Шаг 2. Начать транзакцию

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

Шаг 3. Подготовьте оператор копирования

Используйте pq.CopyIn() для создания подготовленного оператора.

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

Шаг 4. Выполните оператор копирования.

Пройдитесь по данным и выполните stmt.Exec() для каждой строки.

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

Шаг 5. Выполнение оператора окончательного копирования

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

Шаг 6. Закройте оператор и зафиксируйте транзакцию

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

Этот код эффективно импортирует строки из STDIN в вашу таблицу PostgreSQL.

Заявление о выпуске Эта статья перепечатана по адресу: 1729744624. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3