我有一个有两个字段的表。
table test
{
fname char(20),
id int not null auto_increment,
primary key(id)
}
现在我在表格中添加3条记录,如下所示:
insert into test(fname) values
('a'),('b'),('c');
,表格看起来像
fname id
a 1
b 2
c 3
现在我从表中删除了b,所以我有:
fname id
a 1
b 3
现在我再次在表中插入一条新记录
insert into test(fname) values('d);
并获得:
fname id
a 1
b 3
d 4
但我希望上次记录的ID为“2”
我该怎么做?
答案 0 :(得分:3)
如果您没有主键的其他候选者,则会使用自动增量列将您的行标识为唯一。如果你依赖于它们在序列中没有间隙,那么你在解决问题的方法上遇到了麻烦,你的查询不应该依赖于除了它们之外的任何其他东西。
还可以找到一段MySQL Cookbook chapter来说明相同的
答案 1 :(得分:0)
我认为你不能改变它。这就是mysql中自动增量的工作原理。
答案 2 :(得分:0)
你不能用自动增量来做到这一点。它只保留最后插入记录的id,并在插入时增加它。它不跟踪删除操作。
无论如何,你为什么要这样做?