Insérations multi-lignes avec pg-promise
L'insertion de plusieurs lignes dans une seule requête est une approche efficace pour les opérations groupées. Pg-promise fournit une prise en charge transparente des insertions multi-lignes grâce à son mécanisme basé sur un tableau.
Syntaxe d'insertion multi-lignes
Pour insérer plusieurs lignes, vous pouvez les définir sous forme de tableau d'objets, chaque objet représentant une ligne :
const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}];
Pour générer la requête d'insertion multi-lignes, utilisez l'assistant d'insertion de l'espace de noms pgp.helpers :
const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'}); const query = insert(values, cs);
Cela génère la requête suivante :
INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')
Exécution de requête
Vous pouvez exécuter la requête générée en utilisant la méthode none :
await db.none(query);
Noms SQL dynamiques et protection contre les injections SQL
Pg-promise utilise des espaces réservés ($1, $2, etc.) pour les paramètres de requête, au lieu d'une interpolation de chaîne. Cette approche évite les vulnérabilités d'injection SQL car la bibliothèque nettoie les paramètres avant de construire la requête.
Notes supplémentaires
En résumé, pg-promise offre une solution robuste pour effectuer des insertions multi-lignes, garantissant l'intégrité des données et l'efficacité des performances. Utilisez l'assistant d'insertion et les noms SQL dynamiques pour des résultats optimaux.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!