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

Reiniciar el auto increment en mysql

Estas en el tema de Reiniciar el auto increment en mysql en el foro de Bases de Datos General en Foros del Web. Hola a todos En mi tabla tengo un ID que es la clave principal y autoincrement, quiero sbaer como se le hace q para q ...
  #1 (permalink)  
Antiguo 22/06/2005, 16:11
 
Fecha de Ingreso: mayo-2005
Mensajes: 53
Antigüedad: 18 años, 10 meses
Puntos: 0
Reiniciar el auto increment en mysql

Hola a todos

En mi tabla tengo un ID que es la clave principal y autoincrement, quiero sbaer como se le hace q para q en el momento en que elimine el id 1, se reinicie la numeracion y el ID 2 se vuelva ID 1 que el ID 3 se vuelva ID 2 y asi sucesivamente.

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 22/06/2005, 21:06
 
Fecha de Ingreso: julio-2003
Mensajes: 165
Antigüedad: 20 años, 9 meses
Puntos: 1
En MySQL, los campos con el atributo AUTO_INCREMENT son creados originalmente para que sus números no sean re-utilizados (por lo menos cuando la columna en cuestión no hace parte de un índice multi-columna). Esto quiere decir que no hay forma directa de hacer lo que mencionas.

En cualquier caso, una forma de lograr que los índices se restablezcan, es como efecto secundario de eliminar/recrear la columna en cuestión, pero en ese caso es importante encargarse también, y manualmente, del traslado de los datos y la corrección de referencias desde otras tablas/campos hacia el valor del campo AUTO_INCREMENT que se está restableciendo.

Por otra parte, es posible usar "ALTER TABLE" para restablecer el índice actual de un campo AUTO_INCREMENT pero únicamente con valores > n, en donde n es el índice más alto actualmente almacenado en el campo. Por ejemplo, en un campo AUTO_INCREMENT con los siguientes valores:

2
3
4

Al ejecutar
Código:
ALTER TABLE nombre_tabla AUTO_INCREMENT=50
el siguiente registro insertado tendrá el valor 50 en el campo AUTO_INCREMENT, pero si se ejecuta algo como
Código:
ALTER TABLE nombre_tabla AUTO_INCREMENT=1
el índice de incremento no se modifica y el siguiente valor de incremento será 5, como sería de esperar.

En general, hacer lo que deseas (restablecer el orden secuencialmente desde 1) tiene implicaciones de las que hay que cuidarse (principalmente la integridad referencial desde índices foráneos) y ningún beneficio real, a menos que necesites desesperadamente de la ganancia en espacio cuando se corre el riesgo de que se agoten los índices (cosa que por lo demás no debería ocurrir si eliges acertadamente el tipo de dato del campo), de modo que mi sugerencia es que no te preocupes por restablecer esa secuencia.
  #3 (permalink)  
Antiguo 12/11/2009, 20:01
 
Fecha de Ingreso: agosto-2004
Mensajes: 2
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: Reiniciar el auto increment en mysql

SIMPLE...


TU QUERY SERIAL ALGO COMO ESTO:

truncate nombreTabla;

CON ESTO REINICIAR LA TABLA PERO OJO, TAMBIEN BORRAS TODOS LOS DATOS ALMACENADOS.
  #4 (permalink)  
Antiguo 13/11/2009, 06:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Reiniciar el auto increment en mysql

eso que pides no es nada recomendable. El id está ahí para ser único y fácil de crear (auto_increment), además de indexar (INT). Por eso que haya la posibilidad de usar un INT, auto_increment aunque naturalmente eso no es siempre necesario. Ni mantener una secuencia ni rellenar los huecos serviría para otra cosa que para causar problemas en la integridad referencial, y para dar más trabajo del necesario al servidor. Tal vez pienses que es un desperdicio de números, pero el programa no tiene dificultad en generarlos. Si lo que quieres es mostrar un listado numerado, pues hay soluciones en el lenguaje e incluso en la base de datos (mira en las FAQ este post de gnzsoloyo):

SELECT
(@REG := @REG + 1) Linea,
Campo1,
Campo2,
Campo3
FROM
(SELECT
@REG :=0,
Campo1,
Campo2,
Campo3
FROM Tabla1) Tabla2;

El tema ha sido tratado repetidas veces, y en este post tienes un análisis más amplio.
http://www.forosdelweb.com/f86/reord...rement-731477/
  #5 (permalink)  
Antiguo 13/07/2010, 22:47
 
Fecha de Ingreso: agosto-2009
Ubicación: MX
Mensajes: 21
Antigüedad: 14 años, 8 meses
Puntos: 1
Sonrisa Respuesta: Reiniciar el auto increment en mysql

perfecto que buena respuesta, a veces los usuarios no entienden las preguntas mmmmm o responden por responder solamente.

esta respuesta es la solución gracias!!!
  #6 (permalink)  
Antiguo 04/02/2011, 09:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Reiniciar el auto increment en mysql

Hola

Es facil, simplemente quitale el autoIncrement y Vuelveselo a poner al campo:

Saludos.
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 10:47.