首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails中是否有类似于批处理更新的内容?

Rails中是否有类似于批处理更新的内容?
EN

Stack Overflow用户
提问于 2015-02-24 11:23:10
回答 2查看 7.5K关注 0票数 5

在Java中,我们有批处理执行,如下面的java代码:

代码语言:javascript
复制
Statement statement = null;
statement = connection.createStatement();
statement.addBatch("update people set firstname='John' where id=123");
statement.addBatch("update people set firstname='Eric' where id=456");
statement.addBatch("update people set firstname='May'  where id=789");

int[] recordsAffected = statement.executeBatch();

如何在rails ActiveRecord中进行相同的操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-24 12:11:45

你可以试试这个。看来你想要的是什么。

代码语言:javascript
复制
# Updating multiple records:
people = { 1 => { "first_name" => "David" }, 2 => { "first_name" => "Jeremy" } }
Person.update(people.keys, people.values)

引用:https://cbabhusal.wordpress.com/2015/01/03/updating-multiple-records-at-the-same-time-rails-activerecord/

为满足员额要求,翻译为:

代码语言:javascript
复制
people = { 
  123 => { "firstname" => "John" },
  456 => { "firstname" => "Eric" },
  789 => { "firstname" => "May" }
}
Person.update(people.keys, people.values)

请注意,将上述内容转换为SQL仍然会产生多个查询。

票数 8
EN

Stack Overflow用户

发布于 2021-12-01 08:58:58

感谢Rails 6,您现在可以使用upsert_all方法执行批量更新了。

更多详细信息可在此查阅:https://www.bigbinary.com/blog/bulk-insert-support-in-rails-6

请注意,当数据库是unique_by时,不支持MySQL选项,但是它对Postgresql非常有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28694498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档