在mysql中获取最后插入的自动增量id

8qgya5xd  于 2023-01-08  发布在  Mysql
关注(0)|答案(7)|浏览(144)

我正在尝试获取mysql命令,如mysql_insert_id();它检索最后插入的行的auto_increment id。在Java中如何获取它?

rs = st.executeQuery("select last_insert_id() from schedule");
lastid = rs.getString("last_insert_id()");

我的lastid被声明为INT。我不知道在rs.get中使用什么,也不知道参数。

kwvwclae

kwvwclae1#

使用JDBC时,可以使用**Connection.PreparedStatement(query,int)**方法。

PreparedStatement pstmt = conn.prepareStatement(Query, Statement.RETURN_GENERATED_KEYS);  
pstmt.executeUpdate();  
ResultSet keys = pstmt.getGeneratedKeys();    
keys.next();  
key = keys.getInt(1);
nxagd54h

nxagd54h2#

尝试使用别名

rs = st.executeQuery("select last_insert_id() as last_id from schedule");
lastid = rs.getString("last_id");
oalqel3c

oalqel3c3#

答案和解释请参见this帖子

Statement stmt = db.prepareStatement(query, Statement.RETURN_GENERATED_KEYS);
numero = stmt.executeUpdate();

ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()){
    risultato=rs.getInt(1);
}
9vw9lbht

9vw9lbht4#

为什么不呢

SELECT MAX(id) FROM schedule

如果id您的列的名称与id不同,则需要在上面的查询中相应地替换它。
您可以像这样使用它:

rs = st.executeQuery("SELECT MAX(id) AS id FROM schedule");
int lastid = rs.getInt("id");
1qczuiv0

1qczuiv05#

您可以使用以下查询来获取最后插入行的last auto_incremented ID。

SELECT (max(auto_incr_id)) from table_name;
falq053o

falq053o6#

另一种选择:
第一个月

eaf3rand

eaf3rand7#

另一种方式:

ResultSet rs = stmt.executeQuery("SELECT last_insert_id()");

while(rs.next()){
    System.out.println("id = " + rs.getLong(1));

}

相关问题