auto-increment - 我的sql如何重置AUTO_INCREMENT ?

如何重置字段的自动增量? 我希望它从1开始重新计数。

时间:

可以使用以下方法重置计数器:


ALTER TABLE tablename AUTO_INCREMENT = 1

对于InnoDB,你不能将auto_increment值设置为最高或等于当前的索引,

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


ALTER TABLE tablename AUTO_INCREMENT = 1

就像这样:


ALTER TABLE tablename AUTO_INCREMENT = value;

注意 ALTER TABLE tablename AUTO_INCREMENT = value;不适用于InnoDB

最佳解决方案:


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;

我觉得这可以


ALTER TABLE news_feed DROP id

ALTER TABLE news_feed ADD id BIGINT( 200 ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (id)

...