如何重置字段的AUTO_INCREMENT?

我希望它再次从1开始计数。


当前回答

我试图更改表并将auto_increment设置为1,但没有成功。我决定删除正在递增的列名称,然后用您的首选名称创建一个新列,并将该新列设置为从开始递增。

其他回答

最适合我的解决方案:

ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED;
COMMIT;
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT;
COMMIT;

它很快,与InnoDB一起工作,我不需要知道当前的最大值!

这边自动递增计数器将复位,并将从存在的最大值自动启动。

SET  @num := 0;

UPDATE your_table SET id = @num := (@num+1);

ALTER TABLE your_table AUTO_INCREMENT =1;

从MySQL 5.6开始,您可以在InnoDB中使用简单的ALTERTABLE:

ALTER TABLE tablename AUTO_INCREMENT = 1;

更新文件以反映这一点:

13.1.7 ALTER TABLE语句

我的测试还显示该表未被复制。只需更改值即可。

SET @num := 0;
UPDATE your_table SET id = @num := (@num+1);
ALTER TABLE your_table AUTO_INCREMENT =1;

最好的方法是用AI删除字段,然后用AI再次添加。它适用于所有表。