Подтвердить что ты не робот

Получить последний введенный auto increment id в mysql

Я пытаюсь получить команду mysql как mysql_insert_id(); которые извлекают последний вставленный идентификатор auto_increment строки. Что я могу сделать, чтобы получить его на Java?

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

my lastid был объявлен как INT. Я dono, что использовать в rs.get, а также параметр..

4b9b3361

Ответ 1

Попробуйте использовать псевдоним

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

Ответ 2

Используя 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);

Ответ 3

см. эту статью для ответа и объяснения

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

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

Ответ 4

Почему бы не

SELECT MAX(id) FROM schedule

Если id вашего столбца имеет другое имя, чем id, вам необходимо его соответствующим образом заменить в приведенном выше запросе.

Вы можете использовать его как:

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

Ответ 5

Вы можете использовать следующий запрос, чтобы получить последний auto_incremented ID последней вставленной строки.

SELECT (max(auto_incr_id)) from table_name;