在mysql中获取最后插入的自动增量ID
我试图获取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中使用什么以及参数..
尝试使用别名
rs = st.executeQuery("select last_insert_id() as last_id from schedule"); lastid = rs.getString("last_id");
使用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);
看这篇文章的答案和解释
Statement stmt = db.prepareStatement(query, Statement.RETURN_GENERATED_KEYS); numero = stmt.executeUpdate(); ResultSet rs = stmt.getGeneratedKeys(); if (rs.next()){ risultato=rs.getInt(1); }
为什么不
SELECT MAX(id) FROM schedule
如果id列的名称与id
不同,则需要在上面的查询中相应地替换它。
您可以像以下一样使用它:
rs = st.executeQuery("SELECT MAX(id) AS id FROM schedule"); int lastid = rs.getInt("id");
您可以使用以下查询来获取上次插入行的最后一次auto_incremented ID。
SELECT (max(auto_incr_id)) from table_name;