Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour plusieurs lignes dans PostgreSQL avec une seule requête ?

Comment puis-je mettre à jour plusieurs lignes dans PostgreSQL avec une seule requête ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-12 22:52:42368parcourir

How Can I Update Multiple Rows in PostgreSQL with a Single Query?

Mise à jour efficace de plusieurs lignes dans PostgreSQL

PostgreSQL propose des méthodes puissantes pour mettre à jour plusieurs lignes simultanément, évitant ainsi les limitations des instructions de mise à jour standard. Ce guide démontre une approche très efficace.

Méthode : tirer parti de la clause UPDATE ... FROM

La syntaxe UPDATE ... FROM fournit un moyen propre et efficace de mettre à jour plusieurs lignes en fonction des données provenant d'une autre source. Cette approche de « table de mappage » simplifie le processus de mise à jour de plusieurs colonnes à la fois.

Par exemple, pour mettre à jour les valeurs column_a en fonction des valeurs column_b correspondantes :

<code class="language-sql">UPDATE test AS t
SET column_a = c.column_a
FROM (VALUES
    ('123', 1),
    ('345', 2)
) AS c(column_b, column_a)
WHERE c.column_b = t.column_b;</code>

Cette requête utilise une clause VALUES pour créer la table de mappage. L'étendre pour mettre à jour plusieurs colonnes est simple :

<code class="language-sql">UPDATE test AS t
SET column_a = c.column_a,
    column_c = c.column_c
FROM (VALUES
    ('123', 1, '---'),
    ('345', 2, '+++')
) AS c(column_b, column_a, column_c)
WHERE c.column_b = t.column_b;</code>

Cette technique offre une solution évolutive et flexible pour mettre à jour plusieurs lignes dans PostgreSQL avec une seule requête concise.

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:
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