java如何更改主键自动递增,以便在删除行时不会跳过值
我正在为学校做作业,我希望我的主键(id)是1、2、3等等。但如果我删除一行并添加一个新的人,它将跳过该数字
这是我在mySQL工作台上的查询
CREATE TABLE IF NOT EXISTS person
(
id int(11) NOT NULL auto_increment primary key,
first_name varchar(45),
last_name varchar(45)
);
我真的不知道我该去哪里看,该改变什么
我的addPerson声明如下:
public Person addPerson(Person p){
String sql = "INSERT INTO person (first_name, last_name) VALUES(?,?) ";
template.update(sql, p.getFirst_name(), p.getLast_name());
return null;
}
我也不是问为什么不应该这样做,而是问是否可能
# 1 楼答案
自动递增的全部意义在于,你不必为自己计算。当您查询数据库时,您应该使用另一列(如名称、年龄或其他内容),然后从结果中可以获得该行的id。所以追踪身份证真的没有意义
# 2 楼答案
这不是你能做的。这也不是你在现实世界中想要做的事情。如果可以重用键,那么每次添加新记录以查找可用键(您看到的功能只是跟踪生成的最高键值的结果)时都必须进行完整表扫描,这将对性能造成重大影响。更不用说,在对更复杂的数据库禁用外键约束的情况下,可能会导致数据不一致
因此,就我所知,这并不是一种内置于任何数据库中的能力。想要这样做有什么原因(除了美学)吗