ruby-on-rails-3 – 活动记录:delete_all with limit
发布时间:2020-12-17 02:16:30 所属栏目:百科 来源:网络整理
导读:试图获得关于是否可以将delete_all限制为X个记录的确定答案. 我正在尝试以下方法: Model.where(:account_id = account).order(:id).limit(1000).delete_all 但它似乎不尊重限制,而只是删除所有模型,其中:account_id =帐户. 我希望它能产生以下结果: delet
试图获得关于是否可以将delete_all限制为X个记录的确定答案.
我正在尝试以下方法: Model.where(:account_id => account).order(:id).limit(1000).delete_all 但它似乎不尊重限制,而只是删除所有模型,其中:account_id =>帐户. 我希望它能产生以下结果: 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 logger记录查询. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |