2012-05-25 18 views
12

tengo una tabla con ID, esta ID es autoincremento y clave principal, la primera vez que inserto en esa tabla, la ID comienza desde 0, pero después de eliminar todo el valores de esa tabla y se insertan de nuevo en ella, la ID no comienza desde 0, sino que comienza desde el último valor que tenía la ID, ¿qué está pasando, por favor? ¿puedo restablecer el valor a 0?El incremento automático de ID de mysql no comienza desde 0

+3

No hay nada malo. Este es el comportamiento esperado. ¿El odómetro de su automóvil comienza desde 0 cada vez que sale a dar un paseo? –

+0

y entonces, ¿qué puedo hacer ?, inserté más de 300 veces en mis tablas, cuando vi la tarea para el maestro, no es bueno mostrarle a los clientes que empieza en 301, ¿verdad? – LinCR

+1

Si realizó las inserciones desde una secuencia de comandos, puede soltar la tabla y luego volver a ejecutar la secuencia de comandos. Si los insertos fueran manuales, no querría volver a insertarlos, ¿lo haría ?. De todos modos, tenía 300 clientes temporales/de prueba que eliminó. Si fuera tu profesor, no sería un problema. –

Respuesta

16

Usted puede truncar la tabla usando

TRUNCATE `table` 

Truncar se borrar todos los datos en la tabla. Tenga en cuenta que el uso de TRUNCATE tampoco activará ningún desencadenador DELETE como DELETE.

O puede restablecer el recuento usando

ALTER TABLE `table` AUTO_INCREMENT = 1 

Sin embargo, es el comportamiento esperado. No hagas esto último a menos que la mesa esté realmente vacía.

+0

funciona gracias – LinCR

1

Tienes que usar la instrucción TRUNCATE para reiniciar el auto_increment de 1. Es el comportamiento normal para evitar frenar cosas.

+0

me daría un ejemplo por favor, y gracias – LinCR

+0

PRESTE ATENCIÓN que la tabla TRUNCATE destruirá su tabla ... – dAm2K

+0

CUADRO TRUNCATE nombre_de_tabla – dAm2K

3

La eliminación de todos los elementos de una tabla no afecta a la clave principal. La clave principal aún se autoincrementará desde su último valor.

Si desea restablecer la clave principal, se puede tratar de truncar la tabla:

TRUNCATE TABLE yourtable; 

Esto borra todos los elementos de yourtable. Si se restablece la clave principal depende de su base de datos. Con Mysql debería funcionar, ya que Mysql elimina y recrea la tabla en TRUNCATE.

+0

te tengo, gracias – LinCR

5

Para insertar una clave principal con un valor de 0, ejecute primero la petición siguiente:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 
Cuestiones relacionadas