我在mysql数据库中创建了一个用于测试目的的表。 id自动递增。这样做之后(不在一起)
delete from test where id=4;
alter table test auto_increment = 4;
insert into test(nume) values('dan');
它没有任何错误。但最后一个id是5,而不是4.这不应该有效吗?
答案 0 :(得分:2)
删除后写下此查询
ALTER TABLE tablename AUTO_INCREMENT = 1
答案 1 :(得分:0)
问自己,是否需要更改主键。在大多数合法案件中 - 没有。
这部分有用,一旦你插入一行,ID就会是4,但auto_increment会变为5.
因此,下一行插入将为您提供主键重复错误。
答案 2 :(得分:0)
此整个过程仅用于删除ID最高的记录。 如果删除id = 2的位置,则无法更改自动增量ID。无论出于何种原因,你不喜欢在id = 4的id行中得到一个间隙,如果删除id = 2,就会有间隙。那么为什么在添加新记录id = 5之后混淆了id,你会有同样的差距。
但是比赛条件呢。您删除记录ID = 4。两毫秒后我添加了一条记录,得到id = 5。自动增量ID会发生什么?
有什么合理的理由来避免这些差距?