0

假设数据库有一个表,它只有两列ID是 Auto incrementname 是 text。当我们第一次添加2个名字,然后删除两个名字,下次再输入另一个名字,ID计数从数字3开始,而它应该从数字1开始。

问题是有没有办法重置 ID,以便在删除所有 ID 值后从 0 开始,而不是从被删除的最后一个 ID 号继续递增?

4

6 回答 6

1

这是重置AUTO_INCREMENT值的 SQL 查询:

ALTER TABLE tablename AUTO_INCREMENT = 0
于 2013-01-20T05:33:00.543 回答
0

是的你可以

ALTER TABLE mytable AUTO_INCREMENT = 0

但是为什么要打扰呢?宇宙中有很多数字,甚至是 32 位!

于 2013-01-20T05:33:31.623 回答
0

我认为这将满足您的需求。

ALTER TABLE table_name AUTO_INCREMENT = 1;

于 2013-01-20T05:34:14.233 回答
0

ALTER TABLE yourtable AUTO_INCREMENT = 1

于 2013-01-20T05:34:25.943 回答
0

肯定有!

ALTER TABLE 'mytable' AUTO_INCREMENT = 0;

这会将自动增量重置回 0 并从那里继续。

MySQL-dev的一般说明:

您不能将计数器重置为小于或等于任何已使用的值。对于 MyISAM,如果该值小于或等于 AUTO_INCREMENT 列中当前的最大值,则该值重置为当前最大值加一。对于 InnoDB,如果该值小于该列中的当前最大值,则不会发生错误,并且当前序列值不会改变。

于 2013-01-20T05:37:59.663 回答
0

您可以使用截断

TRUNCATE TABLE yourtable;

它类似于删除表的所有行,但有一些区别,包括将自动增量重置为 0。

于 2013-01-20T05:38:26.573 回答