Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

obtener proximo id a insertar en MySQL

Estas en el tema de obtener proximo id a insertar en MySQL en el foro de Bases de Datos General en Foros del Web. Que tal, necesito saber cual es el próximo id(auto_increment) a ser insertado en una tabla de mi base de datos. No puedo usar el max(id_tabla) ...
  #1 (permalink)  
Antiguo 29/03/2005, 09:26
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
obtener proximo id a insertar en MySQL

Que tal, necesito saber cual es el próximo id(auto_increment) a ser insertado en una tabla de mi base de datos.

No puedo usar el max(id_tabla) from tabla, ni el last_insert_id() porque lo que me regresa es el último id que tenga en la tabla + 1, pero yo en mi tabla a veces borro registros, tal que el próximo número a insertar no corresponda con el max(id_tabla) + 1 .

Hay alguna función en mysql que te regrese el id que se insertaría en el próximo registro?

Saludos!!!
  #2 (permalink)  
Antiguo 29/03/2005, 09:29
 
Fecha de Ingreso: febrero-2005
Mensajes: 1.015
Antigüedad: 19 años, 2 meses
Puntos: 6
Pero un momento, ¿Es que si borras un registro, el próximo registro a insertar ocupará el hueco del anterior? ¿Por ejemplo, si tienes 30 id's, y borras la 14, el próximo elemento que registres tendrá id 14 y no 31?

Creo que no es así, eh... al menos en SQL Server. De no ser como dices, sí que te serviría el last_id, max_id, etc.
  #3 (permalink)  
Antiguo 29/03/2005, 10:30
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Es como dices tú, un_tio, aunque borres un id de un campo autoincremental, ese valor no se vuelve a usar.
Un saludo.
__________________
Estoy contagiado de Generación-I
  #4 (permalink)  
Antiguo 29/03/2005, 10:38
Avatar de andinistas  
Fecha de Ingreso: julio-2003
Ubicación: Bogotá COL
Mensajes: 1.000
Antigüedad: 20 años, 9 meses
Puntos: 0
Ok

Cita:
Iniciado por yacatl
Que tal, necesito saber cual es el próximo id(auto_increment) a ser insertado en una tabla de mi base de datos.

No puedo usar el max(id_tabla) from tabla, ni el last_insert_id() porque lo que me regresa es el último id que tenga en la tabla + 1, pero yo en mi tabla a veces borro registros, tal que el próximo número a insertar no corresponda con el max(id_tabla) + 1 .

Hay alguna función en mysql que te regrese el id que se insertaría en el próximo registro?

Saludos!!!

No te podrá servir capturar el ultimo registro que se ingreso y luego sumarle 1 ?

Código PHP:
$ultimo=mysql_insert_id(); 
__________________
Un Saludo, Andinistas.
"Llegaron... Ellos tenían la biblia y nosotros la tierra... y nos dijieron: 'Cierren los ojos y recen.' Cerramos los ojos y cuando los abrimos,
ellos tenían la tierra y nosotros la biblia." Abadío Green.
  #5 (permalink)  
Antiguo 29/03/2005, 12:39
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 7 meses
Puntos: 0
Que tal...

Yo no quiero que el próximo número sustituya a los que he borrado, yo lo que quiero es saber cual es el próximo id que se insertará en esa tabla.

Por eso el max(id_tabla) no me sirve, porque a veces borro registros y pude haber borrado los 3 ultimos, con lo que el max, me dará un número menor del que realmente debería ser.

He probado con el last_insert_id() , pero tampoco me regresa el digito próximo a insetarse.

Y ya tambien había leído del mysql_insert_id() pero no encuentro su sintaxis y le he estado dando...

mysql>SELECT mysql_insert_id() from tabla;

y eso me provoca un error.

Saludos!
  #6 (permalink)  
Antiguo 29/03/2005, 18:55
 
Fecha de Ingreso: mayo-2003
Mensajes: 328
Antigüedad: 21 años
Puntos: 0
http://dev.mysql.com/doc/mysql/en/ge...unique-id.html

SALUDOS
__________________
Uriel Lizama, Perl Developer

Aprende Perl en Perl en Español.
  #7 (permalink)  
Antiguo 07/09/2009, 18:46
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años, 1 mes
Puntos: 15
Respuesta: obtener proximo id a insertar en MySQL

Se que el post ES RE VIEJO, pero tengo la solución que me costó mucho encontrar. La posteo por si alguien pasa por aquí googleando.

Solución a Cómo conocer el proximo id de un AUTO_INCREMENT en mysql

Código:
SELECT AUTO_INCREMENT FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'nombre_base_de_datos' 
AND TABLE_NAME = 'nombre_de_la_tabla'
Un saludo...
__________________
Pablo Reyes

Compra/venta saldos PayPal, Skrill, Neteller, Bitcoins, etc.
  #8 (permalink)  
Antiguo 12/11/2009, 13:56
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: obtener proximo id a insertar en MySQL

SELECT LAST_INSERT_ID(Campo-Auto-Increment) +1 AS ProximoIdAInsertar FROM Tabla ORDER BY Campo-Auto-Increment DESC LIMIT 1"
  #9 (permalink)  
Antiguo 15/07/2010, 09:12
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: obtener proximo id a insertar en MySQL

Pues yo estoy programando en C# y necesito esto para agregar en el mismo procedimiento el ID de la factura al factura_detalle y he tenido que usar SELECT MAX(id_factura) form Facturas, ya que lo de LAST ID no me rula, siempre me devuelve 0 y la conexión no la cierro por ningún lado....
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
  #10 (permalink)  
Antiguo 15/07/2010, 11:02
 
Fecha de Ingreso: julio-2010
Mensajes: 15
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: obtener proximo id a insertar en MySQL

Pues yo usando MS SQL Server uso "SELECT @@IDENTITY" despues de insertar un dato y eso me funciona
  #11 (permalink)  
Antiguo 15/07/2010, 11:07
 
Fecha de Ingreso: mayo-2005
Ubicación: Vimianzo. A Coruña
Mensajes: 230
Antigüedad: 19 años
Puntos: 1
Respuesta: obtener proximo id a insertar en MySQL

Ya, pero yo estoy usando C# con MySQL xDDD
__________________
Técnico Superior en Desarrollo de Apliciones Informáticas
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 05:33.