sql >> Base de Datos >  >> RDS >> PostgreSQL

Actualice varios registros en una transacción ActiveRecord en Rails

Digamos que sabía que quería configurar las cosas con los ID 1, 2 y 3 para que tuvieran puntajes, 2, 8 y 64 (en lugar de solo números aleatorios), podría:

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;

Entonces, con Rails, usaría ActiveRecord::Base.connection#execute para ejecutar un bloque similar al anterior, pero con la cadena de valor correcta interpolada.