Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Kann ich in Rails 2.3 ein atomares Inkrement durchführen, ohne auf SQL herunterzufallen?

Sie können die Klassenmethode increment_counter verwenden :

Customer.increment_counter :counter, customer

Das erzeugt so etwas wie:

UPDATE `customers` SET `counter` = COALESCE(`counter`, 0) + 1 WHERE (`customers`.`id` = 53)

(Sie müssen entweder eine ID oder eine Instanz der Klasse an diese Methode übergeben (customer ) im Gegensatz zu customer.increment!(:counter) Methode, die nicht atomar ist)