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

Patricia Arquette
Lepaskan: 2024-11-01 09:49:02
asal
786 orang telah melayarinya

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>
Salin selepas log masuk

Ini akan menjana pertanyaan INSERT berikut:

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

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!

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!