Bagaimana untuk Mencapai Sisipan Berbilang Baris dengan Kecekapan Menggunakan pg-promise?

Barbara Streisand
Lepaskan: 2024-10-30 13:53:26
asal
851 orang telah melayarinya

How to Achieve Multi-Row Inserts with Efficiency Using pg-promise?

Sisipan Berbilang Baris dengan pg-promise

Pernyataan Masalah:

Bagaimana untuk memasukkan berbilang baris dengan cekap ke dalam pangkalan data menggunakan satu pertanyaan INSERT dalam pg-promise?

Penyelesaian:

Pendekatan pilihan dalam pg-promise ialah menggunakan pembantu ruang nama untuk prestasi tinggi dan fleksibiliti.

<code class="javascript">const {ColumnSet, insert} = pgp.helpers;

const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'});
const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}];

const query = insert(values, cs);
// => INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')

await db.none(query);</code>
Salin selepas log masuk

Pertimbangan Tambahan:

  • Objek ColumnSet hendaklah dibuat secara statik kepada templat pemformatan cache untuk prestasi optimum.
  • Sisipan berbilang baris ini tanpa transaksi, bermakna semua atau tiada nilai akan dimasukkan.
  • Perlindungan suntikan SQL disediakan dengan menggunakan ruang nama pembantu bersama-sama dengan Nama SQL.

Tambahan:

  • Untuk mendapatkan ID setiap rekod baharu, tambahkan RETURNING id pada pertanyaan dan laksanakannya dengan db.many().
  • Untuk memasukkan set data yang besar, pertimbangkan untuk menggunakan ciri Import Data.
  • Anda boleh merangkum penjanaan pertanyaan dalam fungsi untuk pengendalian ralat yang dipertingkatkan.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Sisipan Berbilang Baris dengan Kecekapan Menggunakan pg-promise?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!