现在有一个标签表,里面已经填入了一些数据了,想把主键生成策略改成自增的:
ALTER TABLE `tags` CHANGE COLUMN `Id` `Id` INT(11) NOT NULL AUTO_INCREMENT但是发现改不了,报错:
ERROR 1062: ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'
可是当前表中数据的主键并没有重复的呀,所以原因到底是什么呢?
这种情况的发生,是因为表中包含了 ID 为0(或负值)的记录。 需要更新这些记录,将ID换为正值,才可以在该列上设置 auto_increment。当然,设置好自增策略后,如果你想的话,还可以继续将ID值改为0(或负值)。
本文介绍了解决MySQL数据库中更改主键为自增时遇到的问题,特别是当表中存在ID为0或负值导致无法设置auto_increment属性的情况。

被折叠的 条评论
为什么被折叠?



