mysql设置表的auto_increment - select auto_increment from




如何重置MySQL中的AUTO_INCREMENT? (12)

我如何重置字段的AUTO_INCREMENT ? 我希望它再次从1开始计数。


在“操作”选项卡下有一个非常简单的phpmyadmin方法,您可以在表选项中设置自动增量到所需的数字。


ViralPatel提供了很好的选项

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



您也可以像这样使用语法TRUNCATE表: TRUNCATE TABLE table_name

谨防!! TRUNCATE TABLE your_table删除 TRUNCATE TABLE your_table 所有内容


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

ALTER TABLE tablename AUTO_INCREMENT = 1

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

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

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


我建议你去查询浏览器并执行以下操作:

  1. 去模式,找到你想改变的表格。
  2. 右键单击并选择复制创建语句。
  3. 打开结果选项卡并粘贴create语句。
  4. 转到create语句的最后一行,查找Auto_Increment = N,(其中N是auto_increment字段的当前数字。)
  5. 将N替换为1。
  6. 按下ctrl + enter

一旦你在表格中输入新行,Auto_increment应该重置为1。

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

希望这个帮助!


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


最适合我的解决方案:

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,我不需要知道当前的最大值! 这样自动增量计数器就会复位,并且会从存在的最大值自动启动。


表格的自动增量计数器可以通过两种方式(重新)设置:

  1. 通过执行查询,就像其他人已经解释的一样:

    ALTER TABLE <table_name> AUTO_INCREMENT=<table_id>;

  2. 使用工作台或其他可视化数据库设计工具。 我将在Workbench中展示它是如何完成的 - 但在其他工具中也不会有太大的不同。 通过在所需表格上单击鼠标右键并从上下文菜单中选择Alter table 。 在底部,您可以看到所有可用的选项来更改表格。 选择Options ,你会得到这个表格:

    然后,只需在图像中显示的Auto increment字段中设置所需的值即可。 这将基本上执行第一个选项中显示的查询。


要更新最新加一个ID

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

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!


ALTER TABLE tablename AUTO_INCREMENT = 1




auto-increment