如何重置字段的AUTO_INCREMENT?

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


当前回答

如果您使用PHPStorm的数据库工具,则必须在数据库控制台中输入:

ALTER TABLE <table_name> AUTO_INCREMENT = 0;

其他回答

您可以通过以下方式重置计数器:

ALTER TABLE tablename AUTO_INCREMENT = 1

对于InnoDB,不能将auto_increment值设置为低于或等于当前最高索引。(引自ViralPatel):

请注意,不能将计数器重置为小于或等于的值任何已经使用过的。对于MyISAM,如果值小于大于或等于AUTO_INCREMENT中当前的最大值列,该值将重置为当前最大值加1。对于InnoDB,如果该值小于列,不会发生错误,并且当前序列值不会更改。

请参阅如何使用另一个表中的MAX值重置MySQL AutoIncrement?关于如何动态地获得可接受的值。

就像这样:

ALTER TABLE tablename AUTO_INCREMENT = value;

参考:13.1.9 ALTER TABLE语句

ALTER TABLE `table_name`   DROP `id`;

ALTER TABLE `table_name` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`) ;

很快,首先我们删除了id列,然后再次添加了主键id。。。

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