PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Актуализирайте няколко реда в една и съща заявка с помощта на PostgreSQL

Можете също да използвате update ... from синтаксис и използвайте таблица за съпоставяне. Ако искате да актуализирате повече от една колона, тя е много по-обобщаваща:

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;

Можете да добавите толкова колони, колкото искате:

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 демонстрация



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL функция/запаметена процедура CURRENT_TIMESTAMP не се променя

  2. PostgreSQL:НЕ IN спрямо ОСВЕН разлика в производителността (редактирано #2)

  3. SQL - Създаване на изглед от множество таблици

  4. Как да предотвратим изтриването на първия ред в таблицата (PostgreSQL)?

  5. ГИС:PostGIS/PostgreSQL срещу MySql срещу SQL Server?