如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
当前回答
最好的方法是用AI删除字段,然后用AI再次添加。它适用于所有表。
其他回答
此问题的最高评分答案都建议“ALTER yourtable AUTO_INCREMENT=value”。然而,这仅在alter中的值大于自动递增列的当前最大值时有效。根据MySQL 8文档:
不能将计数器重置为小于或等于当前使用的值。对于InnoDB和MyISAM,如果该值小于或等于AUTO_INCREMENT列中当前的最大值,则该值将重置为当前最大AUTO_INCREENT列值加1。
实际上,您只能更改AUTO_INCREMENT以增加自动递增列的值,而不能将其重置为1,正如OP在问题的第二部分中所要求的那样。对于实际允许您从当前最大值向下设置AUTO_INCREMENT的选项,请查看重新排序/重置自动递增主键。
我建议您转到查询浏览器并执行以下操作:
转到schemata并找到要更改的表。右键单击并选择复制创建语句。打开一个结果选项卡并粘贴create语句。转到create语句的最后一行,查找Auto_Increment=N,(其中N是自动增量字段的当前编号。)将N替换为1。按Ctrl+Enter键。
在表中输入新行后,Auto_increment应重置为1。
我不知道如果您尝试在auto_increment字段值已经存在的地方添加一行,会发生什么。
尝试运行此查询:
ALTER TABLE tablename AUTO_INCREMENT = value;
或尝试此查询以重置自动增量
ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL;
并设置自动增量,然后运行以下查询:
ALTER TABLE `tablename` CHANGE `id` `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;
表格的自动递增计数器可以通过两种方式设置:
通过执行查询,就像其他人已经解释过的那样:ALTER TABLE<TABLE_name>AUTO_INCREMENT=<TABLE_id>;使用Workbench或其他可视化数据库设计工具。我将在Workbench中展示它是如何实现的,但在其他工具中也应该不会有太大不同。右键单击所需的表格,然后从上下文菜单中选择Alter table。在底部,您可以看到更改表格的所有可用选项。选择“选项”,您将获得此表单:
然后,只需在自动增量字段中设置所需的值,如图所示。这将基本上执行第一个选项中显示的查询。
最好的方法是用AI删除字段,然后用AI再次添加。它适用于所有表。