PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Mettre à jour plusieurs lignes dans la même requête à l'aide de PostgreSQL

Vous pouvez également utiliser update ... from syntaxe et utiliser une table de mappage. Si vous souhaitez mettre à jour plus d'une colonne, c'est beaucoup plus généralisable :

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;

Vous pouvez ajouter autant de colonnes que vous le souhaitez :

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;

démo de violon sql