"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Mise en œuvre efficace des techniques d'insertion multi-lignes à l'aide de PG-Promise

Mise en œuvre efficace des techniques d'insertion multi-lignes à l'aide de PG-Promise

Publié le 2025-04-16
Parcourir:857

How to Achieve Multi-Row Inserts with Efficiency Using pg-promise?

Inserte multi-ROW avec PG-Promise

Instruction Problème:

Comment insérer efficacement plusieurs lignes dans une base de données à l'aide d'un seul insert Query en dans PG-Promis?

Solution:

L'approche préférée de PG-Promise est d'utiliser l'espace de noms des aides pour des performances et une flexibilité élevées.

const {ColumnSet, insert} = pgp.helpers;

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);
// => INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')

await db.none(query);

Considérations supplémentaires:

  • L'objet Columnset devrait être créé statistiquement pour cache les modèles de format pour une performance optimale. inséré.
  • La protection de l'injection SQL est fournie en utilisant l'espace de noms des aides en conjonction avec les noms SQL.
extras:

db.many ().
  • pour insérer de grands ensembles de données, envisagez d'utiliser la fonction d'importation de données.
  • Vous pouvez encapsuler la génération de requête dans une fonction pour une gestion des erreurs améliorée.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3