当我删除MySQL表中的最后一行然后插入一个新行时,为什么id仍然会增加,就好像第一行没有被删除一样?有没有办法防止这种情况发生,所以它可能好像原来的行不在那里?这是一个例子
Teachers
id first_name
0 joe
1 mike
2 jim
如果我删除“jim”然后插入“bob”,那么bob的id将为3,并且不会有id为2的条目。
答案 0 :(得分:2)
因为 id 列已配置为自动增量,并且不能具有相同的值,除非您手动指定
答案 1 :(得分:1)
删除任何给定的行不会更改当前的自动增量值。
您可以通过运行
查看表的自动增量变量的当前值SHOW TABLE STATUS LIKE 'mytable';
您可以通过运行
更改自动增量值ALTER TABLE 'mytable' AUTO_INCREMENT = '1234';
答案 2 :(得分:0)
如果在删除行之后和插入新行之前,也可以使用ALTER TABLE表名AUTO_INCREMENT = 2,以便使id增量从2开始
答案 3 :(得分:0)
你需要在每次删除操作后执行此命令,这会将你的auto_increment重置为1将自动设置最后一个可用的id(在你的例子中为2)
ALTER TABLE table_name AUTO_INCREMENT = 1