- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试弄清楚如何使用 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/
我正在尝试弄清楚如何使用 ActiveRecord 来执行以下伪代码: rows_updated = UPDATE my_table SET my_column="abc" WHERE id=123
我正在使用下面的代码创建新记录或更新现有记录。创建有效,更新无效。 Signup.find_or_initialize_by(email: "text@example.com") do |signup
我有以下代码,它工作正常,没有错误,但模型永远不会被保存...... myarray.each do |item| r = MyModel.unscoped.where(:site_id =>
我有一个 Purchase那个has_one :shipping_address . 在我的一种方法中,我有这个: @shipping_address ||= purchase.build_shipp
有没有办法重写下面的流程,目前使用find_or_initialize_by,使用joins方法? 对于上下文 - 我有 users(员工)在系统中记录他们的 attendances(user 有很多
我是一名优秀的程序员,十分优秀!