gpt4 book ai didi

sql - 如何使用 update_all 但每个?有更好的方法吗?

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:44 24 4
gpt4 key购买 nike

我目前正在做一个小项目,我想更快地为我的数据库播种。我将一个名为“grand_total_points”的新列迁移到我的用户表中。所以最初我使用的是这段代码。

user = User.all
user.each do |x|
x.grand_total_points = x.total_points
x.save!
end

这需要我很长时间,因为我必须更新一百万条记录。Total_points 已经在我的用户模型中定义,它计算所有已提交的用户点数。请原谅我的解释。有没有一种方法可以使用 update_all 方法,但每个方法都包含在其中?

最佳答案

是的,可能的:

User.update_all('grand_total_points = total_points')

它将生成以下 SQL 查询:

UPDATE "users" SET "grand_total_points" = 'total_points'

如果 total_points 不是列而是实例方法,将逻辑移至 update_all 查询中。

User.update_all("grand_total_points = #{total_points calculation translated into SQL terms}")

关于sql - 如何使用 update_all 但每个?有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41013930/

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