1.表中已经出现不连贯的数据ID时,执行以下语句进行修改
SET @auto_id = 0;
UPDATE 表名 SET 自增字段名 = (@auto_id := @auto_id + 1);
ALTER TABLE 表名 AUTO_INCREMENT = 1;
如果需要清空表的数据的话,最好使用TRUNCATE TABLE 表名来删除,这样新增的数据自增ID会从1开始,如果使用DELETE来删除,新增的数据会沿着之前的ID进行自增。如果使用的数据库管理软件是Navicat,那可以选中表右键选择截断表,其效果和TRUNCATE的效果是一样的。
2.在删除时解决
//删除信息
public void delete(int id) {
try {
PreparedStatement ps = con.prepareStatement("delete from books where id = ?");
ps.setInt(1, id);
ps.executeUpdate();
PreparedStatement pr = con.prepareStatement("alter table books auto_increment = ?;");
pr.setInt(1, id - 1);
pr.executeUpdate();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}