Maison > base de données > tutoriel mysql > Comment puis-je mettre à jour efficacement plusieurs lignes simultanément dans PostgreSQL ?

Comment puis-je mettre à jour efficacement plusieurs lignes simultanément dans PostgreSQL ?

Patricia Arquette
Libérer: 2025-01-12 22:56:49
original
988 Les gens l'ont consulté

How Can I Efficiently Update Multiple Rows Concurrently in PostgreSQL?

Optimisation des mises à jour multi-lignes PostgreSQL

La mise à jour efficace de nombreuses lignes dans PostgreSQL est cruciale pour la gestion des bases de données. Tandis que les instructions UPDATE individuelles fonctionnent, PostgreSQL propose des méthodes plus efficaces pour les mises à jour par lots.

Une approche utilise la syntaxe UPDATE ... SET avec plusieurs clauses WHERE :

<code class="language-sql">UPDATE table
SET
  column_a = 1 WHERE column_b = '123',
  column_a = 2 WHERE column_b = '345';</code>
Copier après la connexion

Cependant, cette méthode manque de flexibilité pour les mises à jour complexes sur plusieurs colonnes.

Une approche supérieure exploite la syntaxe UPDATE ... FROM avec une table de valeurs :

<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>
Copier après la connexion

Cette technique gère facilement les mises à jour multi-colonnes :

<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>
Copier après la connexion

Ces techniques avancées améliorent considérablement les performances de mise à jour par lots dans PostgreSQL, réduisant le temps d'exécution et simplifiant la maintenance de la base de données.

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!

source:php.cn
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