rails 嗨 gem - 主键 ID 和自动增量给出重复项

rails ahoy gem - primary key id and autoincrement give duplicate entry

我的 rails 应用中的 ahoy visit 模型遇到了一些问题

我有很多

Mysql2::Error: Duplicate entry '$$' for key 'PRIMARY': INSERT INTO `visits`

其中 $$ 是一个数字

当我打印最后一条记录时

Visits=Visit.find(:all, :order => "started_at desc", :limit => 5)
Visits.each do |visit| puts "#{visit.id} -- #{visit.started_at}" end

显示为

99904352 -- 2018-02-01 11:32:51 UTC

8918 -- 2018-02-01 09:59:04 UTC

90866 -- 2018-02-01 09:09:10 UTC

99904351 -- 2018-02-01 09:03:00 UTC

99904350 -- 2018-02-01 08:58:24 UTC

我已经尝试重置自动增量值

ALTER TABLE visits AUTO_INCREMENT = max_value+1;

没有成功..

有什么想法吗?我想避免 dump/drop/reload DB

谢谢!

当您发现重复键错误时,例如 Mysql2::Error: Duplicate entry '$$' for key 'PRIMARY': INSERT INTO visits ,你应该检查两件事:

  • 如果您手动插入记录设置键
  • 如果自动增量值不是较大的键。

您当然必须更改您的程序以避免手动插入设置密钥的记录,并且您必须将自动增量值更新为下一个可用值。为此,搜索最大值并将其设置为下一个值。

Select max(id) from visits;
ALTER TABLE visits AUTO_INCREMENT = max_value + 1;

还行 我有一个错误的 before_create 试图用 uuid 而不是整数来设置 id ..我已经评论了它..我必须等待但我相信那是我的问题..

我的错 :p