Apabila mencuba sisipan pukal dalam pangkalan data, mencipta pernyataan SQL secara manual boleh memperkenalkan ralat dan kesesakan prestasi. Memanfaatkan ciri pgx.Conn.CopyFrom menyediakan penyelesaian cekap yang mengautomasikan proses.
Dalam kod yang disediakan, pernyataan SQL dibina dengan menggabungkan rentetan, yang boleh mengakibatkan ralat jika bilangan parameter dolar ($ tanda) tidak sepadan dengan bilangan argumen yang dihantar ke fungsi conn.Exec. Selain itu, penggabungan rentetan untuk input besar boleh menjadi tidak cekap dan membawa kepada isu ingatan.
kaedah CopyFrom pgx memudahkan pemasukan data pukal dengan memanfaatkan protokol salinan PostgreSQL. Ia memerlukan tiga hujah:
Antara muka CopyFromSource membenarkan kefleksibelan dalam menentukan sumber data. Ia boleh dilaksanakan menggunakan sekeping hirisan nilai antara muka (seperti dalam contoh yang disediakan), rentetan. Pembaca yang mengandungi data CSV atau pelaksanaan tersuai.
Di bawah ialah coretan kod yang disemak semula yang menunjukkan penggunaan CopyFrom:
<code class="go">rows := [][]interface{}{ {"abc", 10}, {"dns", 11}, {"qwe", 12}, {"dss", 13}, {"xcmk", 14}, } _, err := conn.CopyFrom( pgx.Identifier{"keys"}, []string{"keyval", "lastval"}, pgx.CopyFromRows(rows), )</code>
Kod ini akan secara pukal memasukkan baris ke dalam jadual "kunci", meningkatkan prestasi dengan ketara dan mengurangkan kemungkinan ralat berbanding pembuatan SQL manual.
Atas ialah kandungan terperinci Cara Memasukkan Data Pukal ke dalam Postgres Menggunakan pgx dalam Go: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!