2010-06-11 48 views
65

Estaba probando algunos datos en mis tablas de mi base de datos, para ver si hubo algún error, ahora limpié todos los datos de prueba, pero mi id (incremento automático) ya no comienza desde 1, puede (cómo hacerlo) Lo reinicié?¿Restablecer autoincrement ID? phpmyadmin

Respuesta

128
ALTER TABLE `table_name` AUTO_INCREMENT=1 
+7

En realidad 'ALTER TABLE nombre de tabla AUTO_INCREMENT = 0' funcionaron mejor para mí de lo contrario el nuevo registro se añadió con id = 2. –

+0

Mickey respuesta a continuación me ayudó la mejor https://stackoverflow.com/a/16114913/1123816 –

15

ALTER TABLE xxx AUTO_INCREMENT = 1; o borre su tabla por TRUNCATE

+4

+ 1 para truncar – mcgrailm

77

También puede hacerlo en phpMyAdmin sin escribir SQL.

  • Haga clic en el nombre de una base de datos en la columna de la izquierda.
  • Haga clic en el nombre de una tabla en la columna de la izquierda.
  • Haga clic en la pestaña "Operaciones" en la parte superior.
  • En "Opciones de tabla" debe haber un campo para AUTO_INCREMENT (solo en las tablas que tienen un campo de incremento automático).
  • Ingrese el valor deseado y haga clic en el botón "Ir" a continuación.

Nota: Verás que phpMyAdmin es la emisión de la misma SQL que se menciona en las otras respuestas.

-1

Acabo de experimentar este problema en una de mis bases de datos MySQL y miré la respuesta de phpMyAdmin aquí. Sin embargo, la mejor manera en que lo arreglé en phpMyAdmin fue en la tabla afectada, soltar la columna de identificación y crear una nueva/fresca columna de identificación (agregando A-I -autoincrement-). Esto restauró mi identificación de la tabla correctamente-simples! Espero que ayude (no se necesita un código MySQL, ¡espero aprender a usarlo, pero más tarde!) A nadie más con este problema.

+0

el sql que usa phpMyAdmin para hacer lo que le dices que haga es esencialmente Mikeys4u responder justo por encima de esto. Y puedes ver mi comentario sobre por qué, aunque esto estará bien en algunos entornos, no es una buena solución –

10

Estoy de acuerdo con rpd, esta es la respuesta y se puede hacer de forma regular para limpiar su columna de identificación que se está haciendo más grande con solo unos pocos cientos de filas de datos, pero tal vez una identificación de 34444543! los datos se borran regularmente pero la identificación se incrementa automáticamente.

ALTER TABLE users DROP id 

El sql anterior se puede ejecutar mediante la consulta sql o como php. Esto eliminará la columna de id.

luego volver a añadirlo de nuevo, mediante el código de abajo:

ALTER TABLE `users` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST 

colocar esto en un trozo de código que puedan quedar ejecutar tal vez en un panel de administración, por lo que cuando alguien entra en esa página va a ejecutar este script que limpia automáticamente su base de datos y la arregla.

+1

+ 1, ya que -en mi caso- si la tabla todavía contiene algunos datos (los primeros 2 usuarios) el auto inc no será alterado. Pero con sus soluciones, volverá a organizar todos los índices. – MJoraid

+3

"_esta es la respuesta y se puede hacer de forma regular para limpiar su columna de identificación que se está haciendo más grande con solo unos cientos de filas de datos_"? ¿Soy el único en ver que esto es una locura? ¡OP preguntó (creo) sobre la mesa ** vacía **! Su "_región regular_" sugiere hacer esto regularmente en una tabla llena de datos. ¿Cómo puedes imaginar eso?¿Qué pasa con las relaciones (otras tablas, que usa ID de esta tabla?) Si simplemente sueltas el 'id' y lo vuelves a crear, estás cambiando completamente los ID de tus registros. ¡También puedes dejar de usar la columna 'id' en absoluto! – trejder

+0

Cada situación es diferente .... Tengo solo 8000 filas y mi identificación llegó a 9 o 10 números de largo ... no hay relaciones, y acaba de elegir los últimos resultados (mayor ID). Esto se hace una vez al mes en una tarea programada, después de 18 meses nunca tuve un problema ... – Mikeys4u

Cuestiones relacionadas