尝试获得关于是否可以将 delete_all
限制为 X 条记录的明确答案。
我正在尝试以下操作:
Model.where(:account_id => account).order(:id).limit(1000).delete_all
但它似乎不遵守限制
,而是删除所有 :account_id => account
的模型。
我希望它会生成以下内容:
delete from model where account_id = ? order by id limit 1000
使用 destroy_all
时这似乎工作正常,但我想批量删除。
最佳答案
这个对我(和我的需求)也很有效
Model.connection.exec_delete('DELETE FROM models ORDER BY id LIMIT 10000', 'DELETE', [])
我知道这可能看起来有点麻烦,但它会返回受影响的行,并且还会通过 Rails 记录器记录查询。 ;)
关于ruby-on-rails-3 - 事件记录: delete_all with limit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176771/