PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Atualizar vários registros em uma transação ActiveRecord no Rails


Digamos que você sabia que queria definir as coisas com IDs 1, 2 e 3 para ter pontuações, 2, 8 e 64 (em oposição a apenas números aleatórios), você poderia:
UPDATE 
  things AS t
SET
  score = c.score
FROM 
  (values
    (1, 2),
    (2, 30),
    (4, 50)
  ) as c(id, score) 
 where c.id = t.id;

Então, com Rails, você usaria ActiveRecord::Base.connection#execute para executar um bloco semelhante ao acima, mas com a string de valor correta interpolada.