Rumah > Artikel > hujung hadapan web > Bagaimana untuk Mencapai Sisipan Berbilang Baris yang Cekap dengan 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!