如何重置字段的AUTO_INCREMENT?

我希望它再次从1开始计数。


当前回答

警告:如果您的列具有约束或作为外键连接到其他表,这将产生不良影响。

首先,删除列:

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

其他回答

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

就像这样:

ALTER TABLE tablename AUTO_INCREMENT = value;

参考:13.1.9 ALTER TABLE语句

我试图更改表并将auto_increment设置为1,但没有成功。我决定删除正在递增的列名称,然后用您的首选名称创建一个新列,并将该新列设置为从开始递增。

要更新到最新的加号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;

未测试,请在运行前测试*

我建议您转到查询浏览器并执行以下操作:

转到schemata并找到要更改的表。右键单击并选择复制创建语句。打开一个结果选项卡并粘贴create语句。转到create语句的最后一行,查找Auto_Increment=N,(其中N是自动增量字段的当前编号。)将N替换为1。按Ctrl+Enter键。

在表中输入新行后,Auto_increment应重置为1。

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