java - 列ID的增量

标签 java mysql database database-connection

我有两种方法,一种用于向数据库中插入数据,另一种用于删除它们。假设我添加了 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/

相关文章:

java - 数据库值分离

java - 关闭 RecyclerView 的第一个元素时发生错误 “java.lang.IllegalArgumentException: parameter must be a decendant of this view”

php - 加入、联合、合并?

mysql - 我的 MySQL 查询不会返回任何结果?

mysql - 如何让所有孙子处于一对多关系 HQL 中?

database - 无法将 Firebase 库添加到 Apps 脚本

java - 从 ImageView 设置背景图像

java - 与 Firefox 和其他浏览器相比,Jsoup 获得不同的 html

mysql - 在多个连接表上使用 MySQL GROUP_CONCAT 或 PIVOT

java - DB和java的最短路径问题