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

Saber id autogenerado

Estas en el tema de Saber id autogenerado en el foro de Mysql en Foros del Web. Buenas, imaginad que tengo una tabla con 2 atributos, id y nombre. El atributo id es un entero autogenerado por MySQL y el nombre una ...
  #1 (permalink)  
Antiguo 30/10/2007, 06:27
 
Fecha de Ingreso: octubre-2007
Mensajes: 32
Antigüedad: 16 años, 6 meses
Puntos: 0
Saber id autogenerado

Buenas, imaginad que tengo una tabla con 2 atributos, id y nombre.

El atributo id es un entero autogenerado por MySQL y el nombre una cadena. Bien, imaginad que tengo una fila insertada con los datos 1 y Jose. Ahora quiero insertar una nueva fila con el mismo nombre Jose y claro, el id como es autogenerado será 2 en este caso.

Mi pregunta es, si justo después de insertar la 2ª fila quiero saber que id ha autogenerado MySQL, ¿cómo puedo saberlo? Porque si lanzo una consulta para averiguarlo, la unica condicion que puedo poner es nombre = 'Jose' y me devolverá 2 resultados por lo que no consigo lo que quiero.

Gracias!


PD. Yo creo que hay una funcion que te da el numero del contador de la tabla (al menos Hibernate lo tiene).
  #2 (permalink)  
Antiguo 30/10/2007, 07:05
Avatar de xempro  
Fecha de Ingreso: marzo-2007
Ubicación: Chile
Mensajes: 222
Antigüedad: 17 años, 1 mes
Puntos: 6
Re: Saber id autogenerado

Hola, puedes utilizar la funcion count cuenta los registros de la tabla.

Ejemplo:

SELECT count(*) FROM Tabla;
  #3 (permalink)  
Antiguo 30/10/2007, 12:54
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: Saber id autogenerado

xempro, eso le daría la cantidad de registros existentes, supone que insertaste 10 registros, en algun momento borraste alguno del medio eso te daría como resultado 9, cuando en realidad el valor tendría que ser 10.
encurto te aconsejo que uses el SELECT MAX(id) FROM tabla, esto te daría el valor maximo de la tabla. MySQL, con los campos autoincrementables realiza primero esto, consulta el valor maximo de ese campo (omitiendo si hay un "hueco" en el medio), y después incrementa ese valor en uno

Espero que te sirva
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
  #4 (permalink)  
Antiguo 30/10/2007, 14:37
 
Fecha de Ingreso: octubre-2007
Mensajes: 32
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Saber id autogenerado

Cita:
Iniciado por hectorejch Ver Mensaje
xempro, eso le daría la cantidad de registros existentes, supone que insertaste 10 registros, en algun momento borraste alguno del medio eso te daría como resultado 9, cuando en realidad el valor tendría que ser 10.
encurto te aconsejo que uses el SELECT MAX(id) FROM tabla, esto te daría el valor maximo de la tabla. MySQL, con los campos autoincrementables realiza primero esto, consulta el valor maximo de ese campo (omitiendo si hay un "hueco" en el medio), y después incrementa ese valor en uno

Espero que te sirva

Buena idea!!!

Gracias a los dos!


PD: Acabo de pensar...y que pasa si mientras hago un SELECT MAX(id) from tabla justo antes se inserta otra fila en la tabla? Ya no obtendria el id que quiero y la informacion se volvería corrupta.

Última edición por encurto; 30/10/2007 a las 14:43
  #5 (permalink)  
Antiguo 30/10/2007, 15:17
 
Fecha de Ingreso: mayo-2006
Ubicación: Bogotá
Mensajes: 2.061
Antigüedad: 17 años, 11 meses
Puntos: 50
Re: Saber id autogenerado

Si de casualidad esta usando php con MySQL. inmediatamente despues de hacer el insert haga esto y hay le trae el ID que se genero especificamente en ese insert.

Código PHP:
$IdGenerado mysql_insert_id(); 
  #6 (permalink)  
Antiguo 30/10/2007, 15:23
 
Fecha de Ingreso: octubre-2007
Mensajes: 32
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Saber id autogenerado

Siiiii esa es la funcion, sabia que tenia que existir.

Graciaaaaaaaaaaaaaas!
  #7 (permalink)  
Antiguo 30/10/2007, 19:16
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Saber id autogenerado

Por favor....

NO coloquen funciones o código de programación en esta sección.

Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
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:35.