Tôi chỉ mới bắt đầu sử dụng phần tiếp theo trong một ứng dụng Sinatra thực sự nhỏ. Vì tôi chỉ có một bảng DB, tôi không cần sử dụng các mô hình.Làm thế nào để cập nhật hoặc chèn vào bộ dữ liệu Sequel?
Tôi muốn cập nhật một bản ghi nếu nó tồn tại hoặc chèn một bản ghi mới nếu nó không. Tôi đã đưa ra giải pháp sau:
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
Nơi dữ liệu là DB[:numbers]
.
Tôi tin rằng cách này không phải là cách triển khai "cập nhật hoặc chèn" thanh lịch nhất.
Làm cách nào để thực hiện?
http://stackoverflow.com/questions/3647454/increment-counter-or-insert-row-in-one-statement-in-sqlite – Reactormonk