PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Aktualisieren Sie mehrere Zeilen in derselben Abfrage mit PostgreSQL

Sie können auch update ... from verwenden Syntax und verwenden Sie eine Zuordnungstabelle. Wenn Sie mehr als eine Spalte aktualisieren möchten, ist es viel verallgemeinerbarer:

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;

Sie können beliebig viele Spalten hinzufügen:

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;

SQL-Fiddle-Demo