如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
如何重置字段的AUTO_INCREMENT?
我希望它再次从1开始计数。
当前回答
我试图更改表并将auto_increment设置为1,但没有成功。我决定删除正在递增的列名称,然后用您的首选名称创建一个新列,并将该新列设置为从开始递增。
其他回答
表格的自动递增计数器可以通过两种方式设置:
通过执行查询,就像其他人已经解释过的那样:ALTER TABLE<TABLE_name>AUTO_INCREMENT=<TABLE_id>;使用Workbench或其他可视化数据库设计工具。我将在Workbench中展示它是如何实现的,但在其他工具中也应该不会有太大不同。右键单击所需的表格,然后从上下文菜单中选择Alter table。在底部,您可以看到更改表格的所有可用选项。选择“选项”,您将获得此表单:
然后,只需在自动增量字段中设置所需的值,如图所示。这将基本上执行第一个选项中显示的查询。
我建议您转到查询浏览器并执行以下操作:
转到schemata并找到要更改的表。右键单击并选择复制创建语句。打开一个结果选项卡并粘贴create语句。转到create语句的最后一行,查找Auto_Increment=N,(其中N是自动增量字段的当前编号。)将N替换为1。按Ctrl+Enter键。
在表中输入新行后,Auto_increment应重置为1。
我不知道如果您尝试在auto_increment字段值已经存在的地方添加一行,会发生什么。
警告:如果您的列具有约束或作为外键连接到其他表,这将产生不良影响。
首先,删除列:
ALTER TABLE tbl_name DROP COLUMN column_id
接下来,重新创建列并将其设置为FIRST(如果您希望它作为我假设的第一列):
ALTER TABLE tbl_access ADD COLUMN `access_id` int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST
从MySQL 5.6开始,由于在线DDL(注意算法=就地),以下方法的工作速度更快:
alter table tablename auto_increment=1,algorithm=就地;
就像这样:
ALTER TABLE tablename AUTO_INCREMENT = value;
参考:13.1.9 ALTER TABLE语句