在Rails中更新大表,而不需要长时间锁定该表



我在一个大的users表中有1000个email,其无效电子邮件地址以".c"而非".com"结尾。如何在批处理SQL查询中将这些电子邮件更改为".com"?我正在尝试编写一个迁移程序,批量修复所有这些电子邮件,这样我就不会锁定数据库。

到目前为止,我拥有的是:

select 
     email 
from 
     users 
where 
     email like '%.c'

请确保字段的长度足够,并尝试以下操作:

update users
   set email = concat(email,'om')
 where
 email like '%.c'
update users
     set email = replace(email, '.c', '.com')
where
     email like '%.c'

最新更新