Mises à jour à requête unique dans PostgreSQL : une amélioration des performances
PostgreSQL, comme de nombreux systèmes de bases de données, propose des méthodes efficaces pour mettre à jour plusieurs lignes simultanément à l'aide d'une seule requête. Cette approche améliore considérablement les performances, en particulier lorsqu'il s'agit de jeux de données volumineux.
L'instruction UPDATE
avec la clause SET
fournit une méthode simple pour les mises à jour conditionnelles. Par exemple, pour modifier column_a
en fonction de différentes valeurs dans column_b
, vous pouvez utiliser cette syntaxe concise :
<code class="language-sql">UPDATE table_name SET column_a = 1 WHERE column_b = '123', column_a = 2 WHERE column_b = '345';</code>
Cependant, pour les mises à jour plus complexes impliquant plusieurs colonnes, la construction UPDATE ... FROM
offre une flexibilité supérieure. Cela implique de construire une table de mappage temporaire pour spécifier les mises à jour.
Illustrons avec un exemple mettant à jour à la fois column_a
et column_c
en fonction de column_b
:
<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 requête exploite une clause VALUES
pour définir la table de mappage c
, liant efficacement les nouvelles valeurs aux lignes existantes dans test
en fonction des valeurs column_b
correspondantes. Cette approche simplifiée permet des mises à jour efficaces sur plusieurs colonnes au sein d'une seule requête.
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!