【发布时间】: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) 表明您的更新操作会导致重复键。
-
那么如何更新表中的主键?
-
这样做不是个好主意。应该使用主键来识别数据行,仅此而已。如果您需要为行提供连续数字,请考虑添加另一列,该列不是键,只是附加信息。
标签: mysql