Cha*_*nap 6 activerecord ruby-on-rails-3
我的ActiveRecord模型使用基于uuid的主键,我想用一次find_in_batches加载1000条记录.但是,看到文档,说它只适用于基于整数的主键.我查看了代码,我看到它只是通过" primary_key ASC" 命令记录.为什么它不适用于基于非整数的主键?只是因为这个订单?我用这种方法尝试了我的模型,它运行正常.
任何人都能解释一下这个吗?
猜猜文档不是100%正确.它与增量主键一起正常工作.如果您可以保证任何新记录的uuid大于表中任何现有记录的密钥,它将正常工作.否则,您有可能错过开始批处理后添加的新记录.
在内部,在每一步中,它获取最后一条记录(last_id)的id,并选择id大于last_id下一步的1000条记录.因此,如果应用程序last_id在处理步骤中创建具有唯一ID的新记录,则此记录将被排除在处理之外.
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |