auto_increment()的问题

时间:2011-04-05 20:37:44

标签: mysql auto-increment

我有一个有两个字段的表。

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”

我该怎么做?

3 个答案:

答案 0 :(得分:3)

如果您没有主键的其他候选者,则会使用自动增量列将您的行标识为唯一。如果你依赖于它们在序列中没有间隙,那么你在解决问题的方法上遇到了麻烦,你的查询不应该依赖于除了它们之外的任何其他东西。

还可以找到一段MySQL Cookbook chapter来说明相同的

答案 1 :(得分:0)

我认为你不能改变它。这就是mysql中自动增量的工作原理。

答案 2 :(得分:0)

你不能用自动增量来做到这一点。它只保留最后插入记录的id,并在插入时增加它。它不跟踪删除操作。

无论如何,你为什么要这样做?