gpt4 book ai didi

sql - Rails 中的批量更新而不使用 update_all 和单个查询?

转载 作者:行者123 更新时间:2023-12-03 03:37:34 26 4
gpt4 key购买 nike

我想使用事件记录的单个查询来更新多行。我不必使用 update_all 因为它会跳过验证。有什么方法可以在 Rails Active Record 中做到这一点吗?

最佳答案

如果您想更新多个记录而不实例化模型,update_all方法应该可以解决问题:

Updates all records in the current relation with details given. This method constructs a single SQL UPDATE statement and sends it straight to the database. It does not instantiate the involved models and it does not trigger Active Record callbacks or validations. However, values passed to #update_all will still go through Active Record’s normal type casting and serialization.

例如:

# Update all books with 'Rails' in their title
Book.where('title LIKE ?', '%Rails%').update_all(author: 'David')

据我了解,它甚至接受一个数组作为参数,允许我们提供不同的哈希值以相应的顺序更新不同的记录,就像 SQL UPDATE 语句中一样。如果我错了,请纠正我。

关于sql - Rails 中的批量更新而不使用 update_all 和单个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44513074/

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