gpt4 book ai didi

mysql - 当记录通常已经存在时如何有效地使用 first_or_initialize

转载 作者:行者123 更新时间:2023-11-29 06:44:38 24 4
gpt4 key购买 nike

我正在尝试弄清楚如何使用 ActiveRecord 来执行以下伪代码:

rows_updated = UPDATE my_table SET my_column="abc" WHERE id=123
if rows_updated == 0 then INSERT INTO my_table (id, my_column) VALUES (123, "abc")

这是因为大部分时间记录已经存在。我想为自己节省 first_or_create! 似乎生成的额外 SELECT 查询。

有什么想法吗?

最佳答案

对于这种情况,还有不同且更优雅的解决方案(从我的角度来看)其中一个选项是使用替换命令而不是所有这些代码。

只需运行:

REPLACE INTO my_table (id, my_column) VALUES (123, "abc")

这个解决方案在大多数情况下工作得很好,但是如果你对这段代码有很高的负载,你应该考虑使用 INSERT .... ON DUPLICATE KEY UPDATE

关于mysql - 当记录通常已经存在时如何有效地使用 first_or_initialize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19341867/

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