我的phpmyadmin中有一些表,其中一列是自动递增的。
问题在于,当我从表中删除一些行时(例如,元素Car,索引自动递增1)并且我在表中创建另一行,新行的索引为2,但在表中有只有一排。
我希望创建的第二个元素的索引等于行的位置,例如,如果我有3行,则第三个元素的索引等于3。
我正在寻找一种方法让我像这样使用我的phpMyAdmin,但我找不到任何东西。
有可能吗?如果是真的,我该怎么办?我是否必须再次创建表格?
答案 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
上的更多信息
中