mysql重新设置主键生成策略为auto_increment时报错:resulting in duplicate entry '1' for key 'PRIMARY'

现在有一个标签表,里面已经填入了一些数据了,想把主键生成策略改成自增的:

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(或负值)

猜你喜欢

转载自blog.csdn.net/huanghanqian/article/details/80866802