错误 #1062 主键的 Mysql 重复条目
Posted
技术标签:
【中文标题】错误 #1062 主键的 Mysql 重复条目【英文标题】:Error #1062 Mysql Duplicate Entry for the key primary 【发布时间】:2018-05-01 15:01:18 【问题描述】:我有很大的 mysql 表“文档”(超过 3 000 000 行)。
该表有列id
--- 主键无符号和did
----- 无符号。
有时会删除一些行。但我需要自动增量为 1234 而不是 1479。
我执行sql请求:
update docs set id=@num:=@num+1 where 0 in(select @num:=0)
并收到错误 #1062。
2 个问题: 1. 为什么我的主键有重复条目? 2. 如何删除?
【问题讨论】:
欢迎来到 SO。您的表中没有重复的条目。你误读了错误。您收到的错误 (#1062) 表明您的更新操作会导致重复键。 那么如何更新表中的主键? 阅读此处:***.com/questions/17182045/… 这样做不是个好主意。应该使用主键来识别数据行,仅此而已。如果您需要为行提供连续数字,请考虑添加另一列,该列不是键,只是附加信息。 Change primary key (id) of a row in a table and shift the others downwards的可能重复 【参考方案1】:我的想法更简单(删除并添加主要):
更改表 docs
DROP id
;
ALTER TABLE docs
ADD id
INT UNSIGNED NOT NULL AUTO_INCREMENT 首先,添加主键(id
);
【讨论】:
以上是关于错误 #1062 主键的 Mysql 重复条目的主要内容,如果未能解决你的问题,请参考以下文章