sql >> Database >  >> RDS >> PostgreSQL

Update meerdere records in één ActiveRecord-transactie in Rails

Stel dat u wist dat u de dingen met id 1, 2 en 3 wilde instellen op scores, 2, 8 en 64 (in plaats van alleen willekeurige getallen), dan kunt u:

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;

Dus met Rails zou je ActiveRecord::Base.connection#execute gebruiken om een ​​blok gelijk aan het bovenstaande uit te voeren, maar met de juiste waardereeks geïnterpoleerd.



  1. Hoe de MySQL-kolomdefinitie wijzigen?

  2. Hoe MySQL te vermijden 'Deadlock gevonden bij het proberen te vergrendelen; probeer transactie opnieuw te starten'

  3. Fout bij het instellen van de eerste repository in Pentaho Kettle

  4. JSON_TABLE() Functie in Oracle