如何在phpmyadmin中重新启动自动增量?

时间:2015-06-08 14:23:19

标签: php mysql phpmyadmin

我的phpmyadmin中有一些表,其中一列是自动递增的。

问题在于,当我从表中删除一些行时(例如,元素Car,索引自动递增1)并且我在表中创建另一行,新行的索引为2,但在表中有只有一排。

我希望创建的第二个元素的索引等于行的位置,例如,如果我有3行,则第三个元素的索引等于3。

我正在寻找一种方法让我像这样使用我的phpMyAdmin,但我找不到任何东西。

有可能吗?如果是真的,我该怎么办?我是否必须再次创建表格?

5 个答案:

答案 0 :(得分:1)

执行以下SQL语句:

ALTER TABLE tablename AUTO_INCREMENT = 1

答案 1 :(得分:1)

这是可能的,但你不应该在生产上这样做。

SQL查询是:

ALTER TABLE tablename AUTO_INCREMENT = 1

最重要的部分是防止覆盖。例如,您有一个用户,此用户的id为81,如果您删除此用户,并且数据库不记得用户曾使用此id 81(并且例如,你有一些关系 - 比如朋友列表),具有相同ID的用户可能会拥有相同的数据。

所以基本上,你不想重置自动增量值。

答案 2 :(得分:1)

这通常是一个坏主意。自动增量用于创建行的唯一ID。想象一下,你有一个记录" 1 - John"。然后你删除它并添加另一个" 1 - Jack"。从通用数据库逻辑的角度来看,似乎John被重命名为Jack(它具有相同的ID =它是同一个实体)而不是另一个记录。您应该让DB为每个新记录分配新ID,即使在删除记录后留下空白。

如果您确实想这样做,可以使用此查询修改自动增量值:

ALTER TABLE users AUTO_INCREMENT=123

但它仍然不是自动增量的设计方式。

答案 3 :(得分:1)

我也有点挣扎,然后在“操作”选项卡中找到,“自动增量”下有一个设置,您可以在其中设置它将从中开始的数字,因此如果您愿意,可以将其回滚那样做。

答案 4 :(得分:0)

有可能。它不是phpmyadmin的功能,而是mysql的功能。执行此

ALTER TABLE tablename AUTO_INCREMENT = 1

stackoverflow

上的更多信息

mysql reference