Rumah > Artikel > hujung hadapan web > Bagaimanakah saya boleh melakukan sisipan berbilang baris dengan cekap dalam pangkalan data PostgreSQL menggunakan pg-promise?
Sisipan Berbilang Baris dengan pg-promise
Memasukkan berbilang baris ke dalam jadual pangkalan data dengan satu pertanyaan boleh meningkatkan prestasi dengan ketara, terutamanya apabila berurusan dengan set data yang besar. Pg-promise, pembina pertanyaan SQL yang berkuasa dan perpustakaan pelaksana, menyediakan cara yang mudah dan cekap untuk melakukan sisipan berbilang baris.
Sisipan Berbilang Baris dengan Pembantu
Untuk memasukkan berbilang baris dengan pg-promise, anda boleh menggunakan ruang nama pembantu. Ruang nama ini menyediakan satu set fungsi utiliti yang memudahkan untuk membina pertanyaan SQL boleh parameterizable.
<code class="javascript">const pgp = require('pg-promise')({ capSQL: true // capitalize all generated SQL }); const db = pgp(/*connection*/); const {ColumnSet, insert} = pgp.helpers; // our set of columns, to be created only once (statically), and then reused, // to let it cache up its formatting templates for high performance: const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'}); // data input values: const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}]; // generating a multi-row insert query: const query = insert(values, cs); //=> INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2') // executing the query: await db.none(query);</code>
Kelas ColumnSet mentakrifkan lajur yang hendak disisipkan, manakala fungsi sisipan mengambil nilai data untuk dimasukkan dan menjana pertanyaan SQL. Pendekatan ini berprestasi tinggi dan membenarkan sisipan satu baris dan berbilang baris.
Perlindungan Suntikan SQL
Mengenai soalan sampingan perlindungan suntikan SQL, ia adalah penting untuk memahami bahawa menggunakan ruang letak ($1, $2, dsb.) tidak menjamin perlindungan dengan sendirinya. Adalah penting untuk menggabungkan ruang letak dengan pengesahan input dan sanitasi yang betul untuk mengelakkan arahan SQL yang berniat jahat daripada dilaksanakan. Pg-promise menggunakan pendekatan ini secara lalai, menyediakan cara selamat untuk memasukkan data ke dalam pangkalan data anda.
Pertimbangan dan Tambahan Tambahan
Kesimpulannya, ruang nama pembantu pg-promise memudahkan untuk melakukan sisipan berbilang baris, melindungi daripada suntikan SQL sambil mengoptimumkan prestasi.
Atas ialah kandungan terperinci Bagaimanakah saya boleh melakukan sisipan berbilang baris dengan cekap dalam pangkalan data PostgreSQL menggunakan pg-promise?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!