gpt4 book ai didi

ruby-on-rails-3 - 当所有记录都不同时,如何使用全部更新?

转载 作者:行者123 更新时间:2023-12-03 21:24:25 24 4
gpt4 key购买 nike

我如何使用 update_all ,如果我想用各种不同的值更新一列 300,000 条记录?

我想做的是:

Model.update_all(:column => [2,33,94,32]).where(:id => [22974,22975,22976,22977]) 

但不幸的是,这不起作用,对于 300,000 个条目,情况更糟。

最佳答案

来自 ActiveRecord#update documentation :

people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy" } }
Person.update(people.keys, people.values)

所以在你的情况下:
updates = {22974 => {column: 2}, 22975 => {column: 33}, 22976 => {column: 94}, 22977 => {column: 32}}
Model.update(updates.keys, updates.values)

编辑:刚刚查看了源代码,这也生成了 n 个 SQL 查询......所以可能不是最好的解决方案

关于ruby-on-rails-3 - 当所有记录都不同时,如何使用全部更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com