PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Aggiorna più record in una transazione ActiveRecord in Rails

Supponiamo che tu sapessi che volevi impostare le cose con id 1, 2 e 3 per avere punteggi, 2, 8 e 64 (anziché solo numeri casuali), potresti:

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;

Quindi, con Rails, useresti ActiveRecord::Base.connection#execute per eseguire un blocco simile al precedente, ma con la stringa del valore corretto interpolata.