获取数据库中的最后一个自动增量值

3 mysql

我试图检索mySQL中最后插入的数据的自动增量值.这是我的代码:

public int getAutoIncrementProductID() {
    ResultSet rs = null;
    DBController db = new DBController();
    db.getConnection();
    int autoIncKeyFromFunc = -1;
    rs = db.readRequest("SELECT LAST_INSERT_ID()");
    try {
        if (rs.next()) {
            autoIncKeyFromFunc = rs.getInt(1);
            System.out.println("AUTO ID IS " + autoIncKeyFromFunc);
            rs.close();
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    db.terminate();
    return autoIncKeyFromFunc;
}
Run Code Online (Sandbox Code Playgroud)

但是,尽管数据库中的自动增量列不断增加,但这些代码仍然返回0值.它只是不会得到最后插入数据的自动增量值.有人可以帮忙吗?

Ria*_*iaD 8

你应该LAST_INSERT_ID()在插入东西后使用.

对于LAST_INSERT_ID(),最近生成的ID基于每个连接在服务器中维护.它不会被其他客户更改.如果使用非可疑值更新另一个AUTO_INCREMENT列(即,非NULL且不为0的值),则甚至不会更改它.

资源

你也可以试试

SELECT max(id) FROM tableName
Run Code Online (Sandbox Code Playgroud)

但它不会假设已删除的行.