我在我的rails应用程序中遇到了很少的访问模型问题
我有很多
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;
没有成功..
任何想法?我想避免转储/删除/重新加载DB
谢谢!
答案 0 :(得分:3)
当您发现重复键错误时,例如 Mysql2 ::错误:键'PRIMARY'的重复条目'$$':INSERT INTO visits
,您应该检查两件事:
当然,您必须更改程序以避免插入设置密钥的记录,并且必须将自动增量值更新为下一个可用的值。为此,请搜索最大值并将其设置为下一个值。
Select max(id) from visits;
ALTER TABLE visits AUTO_INCREMENT = max_value + 1;
答案 1 :(得分:0)
确定 我有一个假的before_create试图用uuid而不是整数来设置id ..我已经评论了..我必须等待,但我相信那是我的问题..
我的坏:p