gpt4 book ai didi

mysql - rails ActiveRecord : Looking for a db agnostic version of this statement

转载 作者:行者123 更新时间:2023-11-29 04:54:07 25 4
gpt4 key购买 nike

我有一个针对 mysql 服务器执行此操作的迁移:

ActiveRecord::Base.connection.execute("update 'comments' set 'slug' = NULL;")

此语句的目的是删除每一行的“slug”值。
该表中有数百万行,使用 ruby​​ 执行类似 Comment.each...

的操作时速度非常慢

有没有办法重写这个查询,使其与数据库无关,或者至少在 MySQL 和 postgresql 之间工作正常?

谢谢!

最佳答案

Comment.update_all(:slug => nil)

这会生成查询 UPDATE "comments"SET "slug"= NULL

您还可以对范围和条件进行批量更新。例如,您可以:

Comment.where(:some_attribute => "some_value").update_all(:slug => nil)

这会产生 UPDATE "comments"SET "slug"= NULL WHERE (some_attribute = 'some_value')

关于mysql - rails ActiveRecord : Looking for a db agnostic version of this statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8364709/

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