Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengimport Baris ke PostgreSQL daripada STDIN Menggunakan Go?

Bagaimana untuk Mengimport Baris ke PostgreSQL daripada STDIN Menggunakan Go?

Susan Sarandon
Susan Sarandonasal
2024-10-24 16:06:01291semak imbas

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>

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!

Kenyataan:
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