如何重置字段的AUTO_INCREMENT?

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


当前回答

从MySQL 5.6开始,由于在线DDL(注意算法=就地),以下方法的工作速度更快:

alter table tablename auto_increment=1,algorithm=就地;

其他回答

ALTER TABLE news_feed DROP id

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

我在一些脚本中使用了这个。id字段将被删除,然后添加回以前的设置。数据库表中的所有现有字段都用新的自动递增值填充。这也适用于InnoDB。

请注意,表中的所有字段都将被重新计数,并且将具有其他ID!!!。

我建议您转到查询浏览器并执行以下操作:

转到schemata并找到要更改的表。右键单击并选择复制创建语句。打开一个结果选项卡并粘贴create语句。转到create语句的最后一行,查找Auto_Increment=N,(其中N是自动增量字段的当前编号。)将N替换为1。按Ctrl+Enter键。

在表中输入新行后,Auto_increment应重置为1。

我不知道如果您尝试在auto_increment字段值已经存在的地方添加一行,会发生什么。

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 = value;

参考:13.1.9 ALTER TABLE语句

它适用于空表:

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`);