我有两种方法,一种用于向数据库中插入数据,另一种用于删除它们。假设我添加了 3 行,其中 id=1、id=2、id=3。现在我决定删除最后一个并再次插入 1 行。所以我得到了 id 为 1、2、3 的三行,我得到了 id 为 1、2、4 的三行。我该如何解决这个问题?
private void insert() throws SQLException {
String query = "INSERT INTO users (username, email, password, user_group_id) VALUES (?, ?, ?, ?);";
PreparedStatement sql = Boot.getCon().prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
sql.setString(1, username);
sql.setString(2, email);
sql.setString(3, password);
sql.setInt(4,user_group_id);
sql.executeUpdate();
}
public static void delete(int id) throws SQLException {
String query = "DELETE FROM users where id=?;";
PreparedStatement statement = Boot.getCon().prepareStatement(query);
statement.setInt(1,id);
statement.executeUpdate();
System.out.println("You have deleted 1 row");
}
最佳答案
这看起来不是问题,这是预期的行为。您的代码没问题。
我相信您在后台使用一些序列来分配 ID。每次插入时,序列值都会增加 1。
如果您删除任何行,该 ID 将不会再次使用。
关于java - 列ID的增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179831/