Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Mencapai Sisipan Berbilang Baris yang Cekap dengan pg-promise?

Bagaimana untuk Mencapai Sisipan Berbilang Baris yang Cekap dengan pg-promise?

Patricia Arquette
Patricia Arquetteasal
2024-11-01 09:49:02787semak imbas

How to Achieve Efficient Multi-Row Inserts with pg-promise?

Sisipan Berbilang Baris dengan pg-promise

Memasukkan berbilang baris ke dalam pangkalan data dengan satu pertanyaan INSERT boleh meningkatkan prestasi dengan sangat baik. Dalam pg-promise, terdapat beberapa kaedah yang boleh anda gunakan untuk sisipan berbilang baris.

Menggunakan ColumnSet dan sisipkan pembantu daripada ruang nama pembantu ialah pendekatan yang disyorkan untuk prestasi yang dioptimumkan. Mula-mula, buat objek ColumnSet, yang mentakrifkan lajur yang anda ingin masukkan data. Kemudian, gunakan insert helper untuk menjana pertanyaan INSERT dengan nilai yang disediakan. Pertanyaan akan dijana dengan bilangan pemegang tempat nilai yang sesuai dan klausa VALUES akan mengandungi data yang disediakan. Berikut ialah contoh:

<code class="javascript">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);</code>

Ini akan menjana pertanyaan INSERT berikut:

<code class="sql">INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')</code>

Anda boleh melaksanakan pertanyaan menggunakan db.none(query).

SQL Injection Protection

Apabila menggunakan insert helper, nilai yang anda berikan diparameterkan secara automatik, menawarkan perlindungan terhadap suntikan SQL. Walau bagaimanapun, jika anda memasukkan nama skema/jadual/lajur secara dinamik, adalah penting untuk menggunakan Nama SQL untuk mencegah serangan suntikan SQL yang berpotensi.

Memasukkan dengan Nilai Pulangan

Jika anda ingin mendapatkan ID yang dijana atau sebarang nilai lain daripada sisipan berbilang baris, anda boleh menambahkan RETURNING pada pertanyaan anda dan melaksanakannya menggunakan db.many. Ini akan mengembalikan tatasusunan objek yang mengandungi data yang diminta.

Kesimpulan

Menggunakan ColumnSet dan masukkan pembantu bersama SQL Names menyediakan cara yang selamat dan cekap untuk melaksanakan pelbagai -sisipan baris dengan pg-promise.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai Sisipan Berbilang Baris yang Cekap dengan pg-promise?. 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