Foros del Web » Programación para mayores de 30 ;) » Java »

pROBLEMAS CON LAST_INSERT_ID()

Estas en el tema de pROBLEMAS CON LAST_INSERT_ID() en el foro de Java en Foros del Web. Hola.. Bueno mi nuevo problemas es que necesito hacer un codigo correlativo y para ellos necesito sabes el valor de ultimo codigo que se inserto!! ...
  #1 (permalink)  
Antiguo 16/03/2006, 22:00
 
Fecha de Ingreso: enero-2006
Mensajes: 49
Antigüedad: 18 años, 10 meses
Puntos: 0
pROBLEMAS CON LAST_INSERT_ID()

Hola.. Bueno mi nuevo problemas es que necesito hacer un codigo correlativo y para ellos necesito sabes el valor de ultimo codigo que se inserto!!
Creo que este valor lo puedo conseguir con Last_insert_id pero me devuelve 0 y no se porque...


try{
Conectar();
con.setAutoCommit(false);
PreparedStatement SlastID = con.prepareStatement("SELECT LAST_INSERT_ID() FROM tiposdecalle");
ResultSet lastID = SlastID.executeQuery();
while (lastID.next()){
num=lastID.getInt(1);
}
}catch(Exception e){ System.out.println(e);}


No se usarlo muy bien.. asi que agradeceria la ayudita por fis!! Gracias
  #2 (permalink)  
Antiguo 17/03/2006, 14:55
 
Fecha de Ingreso: enero-2006
Mensajes: 49
Antigüedad: 18 años, 10 meses
Puntos: 0
Bueno la razon por la que me devuelve cero es porque el last_insert es solo para campos auto_increment y mi codigo no lo es.. seria la mejor solucion pero...no puedo modificar la bese de datos q me dieron!!
De verdad les agradeceria mucho una ayudita ya que no se me ocurre mas nada, el max() no me sirve porq es multiusuario mi aplicacion
Ayudaaa por fis
  #3 (permalink)  
Antiguo 20/03/2006, 02:40
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 19 años, 3 meses
Puntos: 0
Yo tambien tuve problemas con el last isrt id.
Prueba de hacerlo de esta manera, cogiendo el ultimo id que inserta la connexión.

PreparedStatement SlastID = conn.prepareStatement("SELECT LAST_INSERT_ID() AS LASTID");
ResultSet lastID = SlastID.executeQuery();

while (lastID.next()){
questionID = lastID.getLong("LASTID");
}

Espero que te sirva de ayuda.
  #4 (permalink)  
Antiguo 20/03/2006, 02:56
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 21 años, 1 mes
Puntos: 51
Hacer un codigo correlativo exacto en una aplicacion multiusuario no es nada eficiente y normalmente ni siquiera con campos autoincrement sale exacto, ya que se suelen reservar varios numeros para que no haya que esperar.

Para que fuera correlativo exacto habria que bloquear toda la tabla cada vez que hicieras una modificacion y deshabilitar cualquier uso de caches, asi que... Ademas que en cuanto tengas borrados te empezaran a quedar huecos...

¿Lo de que sea un numero correlativo es por algun requerimiento especial?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:00.