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

id auto_increment

Estas en el tema de id auto_increment en el foro de Mysql en Foros del Web. Hola, antes de nada, perdonad si esta consulta os resulta my básica. Estoy empezando con esto de las bases de datos. A ver si me ...
  #1 (permalink)  
Antiguo 04/08/2007, 09:32
 
Fecha de Ingreso: julio-2007
Mensajes: 9
Antigüedad: 17 años, 4 meses
Puntos: 0
id auto_increment

Hola, antes de nada, perdonad si esta consulta os resulta my básica. Estoy empezando con esto de las bases de datos. A ver si me podéis ayudar con esto:

Si creo una tabla con un campo id que sea int y auto_increment y le asigno la clave primaria, conforme voy añadiendo nuevos registros en la tabla se va incrementando, pero si elimino un registro, el campo id no se actualiza, o sea, si tengo los registros 1, 2, 3 y 4 y elimino el 2, el siguiente registro que ingrese será el id 5, aunque en realidad tenga solo 4 registros en la tabla. Como pretendo crear una tabla para el control de los usuarios de una página web, pensaba que la id me iba a decir exactamente el número de usuarios en la tabla, pero si el id no se actualiza me parece un follón, pues cuando vaya dando de baja y de alta, con el tiempo la id no se parecerá en nada al número real de registros, y además no podré generar un mensaje automático de respuestq que diga es usted el socio numero tal.

¿Hay alguna solución para esto?

Muchas gracias por adelantado por vuestra amabilidad,

Pedro
  #2 (permalink)  
Antiguo 04/08/2007, 10:40
 
Fecha de Ingreso: mayo-2007
Ubicación: España
Mensajes: 147
Antigüedad: 17 años, 5 meses
Puntos: 3
Re: id auto_increment

La clave primaria no tiene que ver con el numero de usuarios. Es sólo un valor que identifica cada registro a nivel interno.

Si quieres saber el numero de usuarios en un momento determinado, puedes lanzar la consulta "select count(*) from usuarios".
  #3 (permalink)  
Antiguo 04/08/2007, 11:33
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 21 años, 1 mes
Puntos: 0
Re: id auto_increment

Recuerda que el ID es un IDENTIFICADOR UNICO DE REGISTRO (Dado que le indicaste que ese campo fuera un Primary Key)
  #4 (permalink)  
Antiguo 04/08/2007, 13:31
 
Fecha de Ingreso: mayo-2007
Mensajes: 2
Antigüedad: 17 años, 6 meses
Puntos: 0
Información Re: id auto_increment

Hola

Bueno, pues hay varias soluciones

La primera es el count que ya te comentaron

La segunda (que en lo personal me gusta mas) es dejar autoincrementable y NUNCA eliminar registros de la base de datos, mas bien crear un campo que se llame activo y que sea de tipo booleano (Si/No) o varchar de 2 (Si/No) para que cuando se desactive algun usuario ponerle en ese campo el valor No, y mientras esten activos el valor Si, y luego para saber cuantos tienes activos o inactivos haces una consulta donde vayas a mirar ese campo y traigas los que tienen valor si para el caso de activos y no para inactivos y con solo esta consulta sin usar count ya te traeria el total en el conteo que hace el recordset sin consumir mas recursos de la bd, espero te sirva, un saludo.
  #5 (permalink)  
Antiguo 04/08/2007, 16:32
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Re: id auto_increment

pedroforo:
La solucion que te da cequiel es muy buena, por cuanto
cuando hagas el conteo de registros, aun cuando la ultima se identifique con el numero 5, el resultado de la consulta dara 4.

La mejor forma es insertar los datos con un archivo de texto.
Osea, que los cambios los haces a nivel del archivo de texto.
Eliminas y vuelves a cargar y todo quedara en orden!.
Toda la informacion la puedes encontrar en el manual de MySql.
Saludos
Y espero te ayude.
Franco
  #6 (permalink)  
Antiguo 05/08/2007, 02:37
 
Fecha de Ingreso: julio-2007
Mensajes: 9
Antigüedad: 17 años, 4 meses
Puntos: 0
Re: id auto_increment

Muchísimas gracias por vuestras amables respuestas, lo haré como me indicáis.

Un saludo,

Pedro
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 13:59.