如何重置字段的AUTO_INCREMENT?

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


当前回答

从MySQL 5.6开始,您可以在InnoDB中使用简单的ALTERTABLE:

ALTER TABLE tablename AUTO_INCREMENT = 1;

更新文件以反映这一点:

13.1.7 ALTER TABLE语句

我的测试还显示该表未被复制。只需更改值即可。

其他回答

SET  @num := 0;

UPDATE your_table SET id = @num := (@num+1);

ALTER TABLE your_table AUTO_INCREMENT =1;

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

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

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

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

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

就像这样:

ALTER TABLE tablename AUTO_INCREMENT = value;

参考:13.1.9 ALTER TABLE语句

当心TRUNCATE TABLE your_TABLE将删除your_TABLE中的所有内容。

您还可以使用语法TRUNCATE表,如下所示:

TRUNCATE TABLE table_name