如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
当前回答
我建议您转到查询浏览器并执行以下操作:
转到schemata并找到要更改的表。右键单击并选择复制创建语句。打开一个结果选项卡并粘贴create语句。转到create语句的最后一行,查找Auto_Increment=N,(其中N是自动增量字段的当前编号。)将N替换为1。按Ctrl+Enter键。
在表中输入新行后,Auto_increment应重置为1。
我不知道如果您尝试在auto_increment字段值已经存在的地方添加一行,会发生什么。
其他回答
如果您使用PHPStorm的数据库工具,则必须在数据库控制台中输入:
ALTER TABLE <table_name> AUTO_INCREMENT = 0;
phpMyAdmin在“操作”选项卡下有一个非常简单的方法。在表选项中,您可以将自动增量设置为所需的数字。
您可以通过以下方式重置计数器:
ALTER TABLE tablename AUTO_INCREMENT = 1
对于InnoDB,不能将auto_increment值设置为低于或等于当前最高索引。(引自ViralPatel):
请注意,不能将计数器重置为小于或等于的值任何已经使用过的。对于MyISAM,如果值小于大于或等于AUTO_INCREMENT中当前的最大值列,该值将重置为当前最大值加1。对于InnoDB,如果该值小于列,不会发生错误,并且当前序列值不会更改。
请参阅如何使用另一个表中的MAX值重置MySQL AutoIncrement?关于如何动态地获得可接受的值。
ALTER TABLE tablename AUTO_INCREMENT = 1
尝试运行此查询:
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;