Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah cara saya memasukkan fail CSV ke dalam PostgreSQL menggunakan Golang tanpa gelung?

Bagaimanakah cara saya memasukkan fail CSV ke dalam PostgreSQL menggunakan Golang tanpa gelung?

Barbara Streisand
Barbara Streisandasal
2024-10-26 06:54:30616semak imbas

How do I insert a CSV file into PostgreSQL using Golang without for loops?

Masukkan CSV Pukal ke dalam PostgreSQL Menggunakan Golang Sans For Loops

Jika anda seorang pemula Golang yang ingin memasukkan data CSV ke dalam jadual PostgreSQL tanpa menggunakan gelung atau pertanyaan SQL mentah, pgx ialah penyelesaian anda. Begini caranya:

  1. Import pgx: Mulakan dengan mengimport pgx, antara muka pangkalan data untuk PostgreSQL.
<code class="go">import (
    "context"
    "fmt"
    "os"

    "github.com/jackc/pgx/v4"
)</code>
  1. Wujudkan Sambungan Pangkalan Data: Sambung ke pangkalan data PostgreSQL anda menggunakan pgx.Connect().
<code class="go">dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL"))
if err != nil {
    panic(err)
}
defer dbconn.Release()</code>
  1. Buka Fail CSV: Muatkan fail CSV yang anda inginkan untuk mengimport.
<code class="go">f, err := os.Open(filename)
if err != nil {
    panic(err)
}
defer func() { _ = f.Close() }()</code>
  1. Lakukan Sisipan Pukal: Gunakan CopyFrom() untuk melakukan sisipan pukal daripada fail CSV ke dalam jadual bernama "csv_test".
<code class="go">res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)")
if err != nil {
    panic(err)
}</code>
  1. Hasil Paparan: Cetak bilangan baris yang terjejas oleh sisipan pukal.
<code class="go">fmt.Print(res.RowsAffected())</code>

Itu sahaja! Menggunakan pgx, anda boleh memasukkan sejumlah besar data CSV ke dalam pangkalan data PostgreSQL anda dengan pantas dan cekap tanpa memerlukan gelung manual atau pertanyaan rumit.

Atas ialah kandungan terperinci Bagaimanakah cara saya memasukkan fail CSV ke dalam PostgreSQL menggunakan Golang tanpa gelung?. 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