Sisipan berbilang baris dengan pg-promise
Memasukkan berbilang baris dalam satu pertanyaan ialah pendekatan yang cekap untuk operasi pukal. Pg-promise menyediakan sokongan lancar untuk sisipan berbilang baris melalui mekanisme berasaskan tatasusunannya.
Sintaks Sisipan Berbilang baris
Untuk memasukkan berbilang baris, anda boleh menentukannya sebagai tatasusunan objek, setiap objek mewakili baris:
const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}];
Untuk menjana pertanyaan sisipan berbilang baris, gunakan pembantu sisipan daripada ruang nama pgp.helpers:
const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'}); const query = insert(values, cs);
Ini menjana pertanyaan berikut:
INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')
Pelaksanaan Pertanyaan
Anda boleh melaksanakan pertanyaan yang dijana menggunakan kaedah none:
await db.none(query);
Nama SQL Dinamik dan Perlindungan Injeksi SQL
Pg-promise menggunakan ruang letak ($1, $2, dsb.) untuk parameter pertanyaan, bukannya interpolasi rentetan. Pendekatan ini menghalang kelemahan suntikan SQL kerana pustaka membersihkan parameter sebelum membina pertanyaan.
Nota Tambahan
Ringkasnya, pg-promise menawarkan penyelesaian yang teguh untuk melaksanakan sisipan berbilang baris, memastikan integriti data dan kecekapan prestasi. Gunakan insert helper dan nama SQL dinamik untuk hasil yang optimum.
Atas ialah kandungan terperinci Bagaimanakah pg-promise boleh mengendalikan sisipan berbilang baris dengan cekap dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!