【问题标题】:on duplicate key wierd issue关于重复键奇怪的问题
【发布时间】:2012-10-29 13:53:59
【问题描述】:

我在我的项目中使用 sql 查询,下一个代码:

ActiveRecord::Base.connection.execute "insert into open_offer_counters (offer_id, udid, open_counter) values #{opened_events.join(", ")} on duplicate key update open_counter = open_counter + 1"

我已经添加了

add_index :open_offer_counters, :offer_id, :unique => true
add_index :open_offer_counters, :udid,  :unique => true

进入迁移之一。但是,当我尝试添加一些只有 1 个重复键的记录时,这不起作用,而是发生了更新键。基本上,如果只有 2 个键(offer_id 和 udid)不同,则此代码有效。如果其中任何一个匹配另一个,AR 会更新我的 open_counter。如果只有 2 个键匹配(offer_id 和 udid),我如何更新 open_counter?

【问题讨论】:

    标签: sql ruby-on-rails ruby-on-rails-3 activerecord


    【解决方案1】:

    添加的问题解决了

    add_index(:open_offer_counters, [:offer_id, :udid], :unique => true)
    

    而不是

    add_index :open_offer_counters, :offer_id, :unique => true
    add_index :open_offer_counters, :udid,  :unique => t
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-28
      • 2021-08-27
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2017-08-23
      相关资源
      最近更新 更多