如何重置字段的AUTO_INCREMENT?

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


当前回答

ALTER TABLE tablename 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一起工作,我不需要知道当前的最大值!

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

它适用于空表:

ALTER TABLE `table_name` AUTO_INCREMENT = 1;

如果你有数据,但你想整理它,我建议使用这个:

ALTER TABLE `table_name` DROP `auto_colmn`;
ALTER TABLE `table_name` ADD  `auto_colmn` INT( {many you want} ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`auto_colmn`);

就像这样:

ALTER TABLE tablename AUTO_INCREMENT = value;

参考:13.1.9 ALTER TABLE语句

要更新到最新的加号id,请执行以下操作:

 ALTER TABLE table_name AUTO_INCREMENT = 
 (SELECT (id+1) id FROM table_name order by id desc limit 1);

编辑:

SET @latestId = SELECT MAX(id) FROM table_name;
SET @nextId = @latestId + 1;
ALTER TABLE table_name AUTO_INCREMENT = @nextId;

未测试,请在运行前测试*

ALTER TABLE `table_name`   DROP `id`;

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

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