[英]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.