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

auto incrementar campo

Estas en el tema de auto incrementar campo en el foro de Mysql en Foros del Web. Buenas, en una tabla tengo una variable ID. Me gustaria que al introducir un registro nuevo, ese nuevo registro tenga la ID=1, y que el ...
  #1 (permalink)  
Antiguo 01/04/2011, 09:39
 
Fecha de Ingreso: octubre-2009
Mensajes: 103
Antigüedad: 14 años, 6 meses
Puntos: 2
auto incrementar campo

Buenas, en una tabla tengo una variable ID.

Me gustaria que al introducir un registro nuevo, ese nuevo registro tenga la ID=1, y que el resto de registros automaticamente incrementasen el valor de su campo ID

----------
por ejemplo:

1 PEPE MADRID
2 JUAN MALAGA
3 LUIS MURCIA


y cuando inserto otro registro, la cosa queda:

1 MARIA JAEN <-- El nuevo registro toma ID 1, y el resto de registros incrementan su ID
2 PEPE MADRID
3 JUAN MALAGA
4 LUIS MURCIA

--------------



hay alguna manera de hacerlo sin tener que estar modificando yo todos los registros cada vez que inserto un registro nuevo?, es decir que se haga una especie de "autoincrement inverso" o algo asi.....
  #2 (permalink)  
Antiguo 01/04/2011, 10:27
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: auto incrementar campo

Cita:
hay alguna manera de hacerlo sin tener que estar modificando yo todos los registros cada vez que inserto un registro nuevo?, es decir que se haga una especie de "autoincrement inverso" o algo asi.....
Basicamente, NO.
Creo que estás confundiendo la función de una clave primaria con el acto de numerar consecutivamente los registros obtenidos de una consulta.
Por un lado, para hacer lo que quieres con una clave primaria, MySQL debería escribir nuevamente todos los registros con cada entrada que se agregue, porque una PK es la que mantiene el orden físico de los registros en la tabla.
Por otro lado, la tarea que estás indicando no tiene ningún sentido práctico. Si lo que quieres es obtener el conjunto de datos ordenados del mar reciente al mas antiguo, y numerados en orden ascendente, para eso no necesitas más que un campo DATETIME que registre el orden de ingreso y nada ma´s, ya que la numeración en cuestión se puede hacer dinámicamente (es decir, en el momento de la consulta) y sin afectar a la tabla.
Por lo demás, una PK es un dato muy importante de las tablas de una base de datos, y no se usa para lo que estás diciendo. En ese punto deberías leer un poco más en profundidad de qué se trata y para qué se usa.

Finalmente: Si nos dices qué es lo que quieres conseguir, podemos sugerirte mejores modos de lograrlo...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: auto, incrementar, campos
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 01:27.