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
我的 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