如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
当前回答
表格的自动递增计数器可以通过两种方式设置:
通过执行查询,就像其他人已经解释过的那样:ALTER TABLE<TABLE_name>AUTO_INCREMENT=<TABLE_id>;使用Workbench或其他可视化数据库设计工具。我将在Workbench中展示它是如何实现的,但在其他工具中也应该不会有太大不同。右键单击所需的表格,然后从上下文菜单中选择Alter table。在底部,您可以看到更改表格的所有可用选项。选择“选项”,您将获得此表单:
然后,只需在自动增量字段中设置所需的值,如图所示。这将基本上执行第一个选项中显示的查询。
其他回答
从MySQL 5.6开始,您可以在InnoDB中使用简单的ALTERTABLE:
ALTER TABLE tablename AUTO_INCREMENT = 1;
更新文件以反映这一点:
13.1.7 ALTER TABLE语句
我的测试还显示该表未被复制。只需更改值即可。
我试图更改表并将auto_increment设置为1,但没有成功。我决定删除正在递增的列名称,然后用您的首选名称创建一个新列,并将该新列设置为从开始递增。
最好的方法是用AI删除字段,然后用AI再次添加。它适用于所有表。
ALTER TABLE `table_name` DROP `id`;
ALTER TABLE `table_name` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`) ;
很快,首先我们删除了id列,然后再次添加了主键id。。。
要更新到最新的加号id,请执行以下操作:
ALTER TABLE table_name AUTO_INCREMENT =
(SELECT (id+1) id FROM table_name order by id desc limit 1);
编辑:
SET @latestId = SELECT MAX(id) FROM table_name;
SET @nextId = @latestId + 1;
ALTER TABLE table_name AUTO_INCREMENT = @nextId;
未测试,请在运行前测试*