ruby-on-rails-3 – 当所有记录不同时,如何使用更新?
发布时间:2020-12-16 21:44:19 所属栏目:百科 来源:网络整理
导读:如何使用update_all,如果要更新一列30万条记录,全部具有各种不同的值? 我想做的是像: Model.update_all(:column = [2,33,94,32]).where(:id = [22974,22975,22976,22977]) 但不幸的是,这不行,对于30万条目更糟糕. 解决方法 从 ActiveRecord#update documen
如何使用update_all,如果要更新一列30万条记录,全部具有各种不同的值?
我想做的是像: Model.update_all(:column => [2,33,94,32]).where(:id => [22974,22975,22976,22977]) 但不幸的是,这不行,对于30万条目更糟糕. 解决方法
从
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查询,所以可能不是最好的解决方案 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 2017 Multi-University Training Contest - Team 8:Hybrid
- c# – 使用Castle ActiveRecord插入许多行并忽略任何欺骗的
- 数组 – 定义XSD以便XML元素为type =“array”
- c# – 如何将可编辑的组合框添加到System.Windows.Forms.Pr
- 使用 Go 编写 PostgreSQL 触发器
- 如何聚合总和在MongoDB中获得总数?
- XML / Java:在解析标签和属性时精确的线条和字符位置?
- 【DB笔试面试164】在Oracle中,如何彻底停止expdp数据泵进程
- FlashDevelop不能trace
- 正则表达式元字符-圆括号和+号使用