Maison >base de données >tutoriel mysql >Comment puis-je mettre à jour plusieurs lignes dans une seule requête PostgreSQL ?
Cet article explique comment mettre à jour plusieurs lignes de données à l'aide d'une seule requête dans une base de données PostgreSQL. Bien que PostgreSQL ne prenne pas en charge la mise à jour directe de plusieurs lignes, il existe plusieurs façons d'atteindre cet objectif.
Une approche consiste à utiliser une combinaison de la syntaxe UPDATE ... FROM
et d'une table de mappage. Cela permet de mettre à jour plusieurs colonnes et offre une plus grande flexibilité. Le code suivant illustre cette approche :
<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>
Plus de colonnes peuvent être ajoutées selon les besoins :
<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>
Une autre approche plus propre consiste à utiliser la syntaxe INSERT ... ON CONFLICT ... UPDATE
de PostgreSQL, qui combine les fonctionnalités d'insertion et de mise à jour en une seule requête. Cependant, cette méthode nécessite de créer un index unique sur la colonne qui identifie la ligne à mettre à jour.
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!