我刚开始在一个非常小的 Sinatra 应用程序中使用 Sequel。由于我只有一个数据库表,我不需要使用模型。
如果记录存在,我想更新记录,如果不存在,我想插入新记录。我想出了以下解决方案:
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
$nums
数据集在哪里DB[:numbers]
。
我相信这种方式不是“更新或插入”行为的最优雅的实现。
应该怎么做?