Bagaimana untuk Mengimport Baris ke PostgreSQL daripada STDIN Menggunakan Go?

Susan Sarandon
Lepaskan: 2024-10-24 16:06:01
asal
398 orang telah melayarinya

How to Import Rows into PostgreSQL from STDIN Using Go?

Mengimport Baris ke dalam PostgreSQL daripada STDIN Menggunakan Go

Dalam Go, anda boleh mengimport baris ke dalam PostgreSQL daripada input standard (STDIN) menggunakan pq pakej. Pendekatan ini secara langsung menyuap data ke dalam pangkalan data tanpa memerlukan fail perantaraan.

Untuk mencapai pengimportan baris langsung daripada STDIN, ikut langkah berikut:

  1. Buka Sambungan PostgreSQL : Wujudkan sambungan ke pangkalan data PostgreSQL anda menggunakan fungsi sql.Open.
  2. Mulakan Transaksi: Mulakan transaksi pangkalan data menggunakan fungsi Mula untuk mengumpulkan berbilang pernyataan bersama.
  3. Sediakan Penyata Salinan: Buat pernyataan yang disediakan untuk menyalin data menggunakan pq.CopyIn. Pernyataan ini menentukan nama jadual sasaran dan lajur untuk diimport.
  4. Import Baris: Laksanakan pernyataan yang disediakan secara berulang untuk setiap baris data yang ingin anda import. Gunakan fungsi Exec untuk menghantar setiap baris ke pangkalan data.
  5. Tamatkan Penyata Salinan: Selepas menambah semua baris, laksanakan pernyataan yang disediakan sekali lagi tanpa sebarang hujah untuk memuktamadkan proses import.
  6. Tutup Penyata Disediakan: Keluarkan sumber yang dikaitkan dengan pernyataan yang disediakan dengan memanggil kaedah Tutup.
  7. Komit Transaksi: Komit transaksi untuk membuat perubahan kekal dalam pangkalan data.

Kod Contoh:

Berikut ialah contoh kod yang menunjukkan pengimportan baris daripada STDIN menggunakan 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>
Salin selepas log masuk

Dengan mengikuti langkah-langkah ini dan menggunakan pakej pq, anda boleh mengimport data dengan cekap ke dalam PostgreSQL terus daripada STDIN dalam program Go anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengimport Baris ke PostgreSQL daripada STDIN Menggunakan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan