如何更新具有大量行的某个列

时间:2013-03-12 04:50:48

标签: ruby-on-rails activerecord

我们使用以下查询在具有200万行的表中将某个字段设置为null。使用ActiveRecord API有更快的方法吗?现在,从这个电话回来需要2-3分钟。

Foo.update_all(:bar => nil)

2 个答案:

答案 0 :(得分:1)

试试这个,另一种做你想做的事。

ALTER TABLE foo DROP COLUMN bar;

然后,

ALTER TABLE foo ADD COLUMN bar INT(10) DEFAULT NULL;

答案 1 :(得分:0)

可能不是。这只会执行非常简单的SQL:

UPDATE foos SET bar = NULL

不知道如何利用ActiveRecord API更快地