繁体   English   中英

auto_increment()问题

[英]problem with 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”

我怎样才能做到这一点?

如果您没有其他主键候选者,则自动递增列将用于将您的行标识为唯一。 如果您依赖于它们在序列中没有空缺,那么您将无法解决问题的逻辑,因此查询不应该依赖于唯一性。

还可以找到一段MySQL Cookbook ,内容与上面相同

我认为您无法更改。 这是auto_increment在mysql中的工作原理。

您不能通过自动增量来做到这一点。 它仅保留最后插入的记录的ID,并在您插入时增加ID。 它不跟踪删除操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM