Maison > développement back-end > Golang > Comment puis-je mettre à jour efficacement plusieurs lignes dans PostgreSQL à l'aide d'une seule requête ?

Comment puis-je mettre à jour efficacement plusieurs lignes dans PostgreSQL à l'aide d'une seule requête ?

Mary-Kate Olsen
Libérer: 2024-12-05 14:24:11
original
210 Les gens l'ont consulté

How Can I Efficiently Bulk Update Multiple Rows in PostgreSQL Using a Single Query?

Mise à jour groupée de plusieurs lignes avec une seule requête PostgreSQL

La mise à jour de plusieurs lignes dans une base de données PostgreSQL à l'aide de Go peut être réalisée efficacement avec un seul SQL déclaration. Cette approche offre un moyen pratique de mettre à jour plusieurs enregistrements en une seule fois, réduisant ainsi le nombre de requêtes requises et améliorant les performances.

Pour effectuer des mises à jour groupées, nous pouvons utiliser une table dérivée, qui est une table temporaire créée dans le portée d’une requête. Cela nous permet de spécifier les valeurs des lignes à mettre à jour. Voici comment procéder :

UPDATE t
SET column_a = v.column_a,
    column_b = v.column_b
FROM (VALUES (1, 'FINISH', 1234),
             (2, 'UNFINISH', 3124)
     ) v(id, column_a, column_b)
WHERE v.id = t.id;
Copier après la connexion

Dans cet exemple, nous créons une table dérivée nommée v avec trois colonnes : id, column_a et column_b. Nous fournissons des valeurs pour deux lignes, qui représentent les mises à jour que nous souhaitons effectuer. La clause WHERE fait correspondre la colonne id de la table dérivée avec la colonne id de la table que nous mettons à jour (t).

Cette approche facilite l'ajout de lignes supplémentaires à mettre à jour, simplement en ajoutant plus de lignes à la table dérivée. Ceci est moins sujet aux erreurs que l’écriture de plusieurs instructions de mise à jour individuelles.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal