Acabo de empezar a usar Sequel en una aplicación Sinatra realmente pequeña. Como tengo una sola tabla DB, no necesito usar modelos.¿Cómo actualizar o insertar en el conjunto de datos de Sequel?
Quiero actualizar un registro si existe o insertar un nuevo registro si no existe. Se me ocurrió la siguiente solución:
rec = $nums.where(:number => n, :type => t)
if $nums.select(1).where(rec.exists)
rec.update(:counter => :counter + 1)
else
$nums.insert(:number => n, :counter => 1, :type => t)
end
Dónde $nums
es DB[:numbers]
conjunto de datos.
Creo que de esta manera no es la implementación más elegante del comportamiento de "actualización o inserción".
¿Cómo se debe hacer?
http://stackoverflow.com/questions/3647454/increment-counter-or-insert-row-in-one-statement-in-sqlite – Reactormonk