Incremento automático después de eliminar en MySQL
Tengo una tabla MySQL con un campo de clave principal que tiene AUTO_INCREMENT activado. Después de leer otras publicaciones aquí, noté personas con el mismo problema y con respuestas variadas. Algunos recomiendan no utilizar esta función, otros afirman que no se puede "arreglar".
Tengo:
table: course
fields: courseID, courseName
Ejemplo: número de registros en la tabla: 18. Si elimino los registros 16, 17 y 18, esperaría que el siguiente registro ingresado tenga el ID del curso 16; sin embargo, será 19 porque el último ID del curso ingresado fue 18.
Mi conocimiento de SQL no es sorprendente, pero ¿hay alguna forma de actualizar o actualizar este recuento con una consulta (o una configuración en la interfaz phpMyAdmin)?
Esta tabla se relacionará con otras en una base de datos.
Teniendo en cuenta todos los consejos, he decidido ignorar este "problema". Simplemente eliminaré y agregaré registros mientras dejo que el incremento automático haga su trabajo. Supongo que realmente no importa cuál sea el número, ya que solo se usa como un identificador único y no tiene un significado comercial (como se mencionó anteriormente) .
Para aquellos a quienes pueda haber confundido con mi publicación original: no deseo usar este campo para saber cuántos registros tengo. Sólo quería que la base de datos se viera ordenada y tuviera un poco más de coherencia.
Lo que intentas hacer suena peligroso, ya que ese no es el uso previsto de AUTO_INCREMENT
.
Si realmente desea encontrar el valor de clave más bajo no utilizado, no lo use AUTO_INCREMENT
en absoluto y administre sus claves manualmente. Sin embargo, esta NO es una práctica recomendada.
Da un paso atrás y pregunta "¿ por qué necesitas reciclar valores clave? " ¿Unsigned INT
(o BIGINT
) no proporciona un espacio clave lo suficientemente grande?
¿Realmente va a tener más que 18,446,744,073,709,551,615
registros únicos a lo largo de la vida útil de su aplicación?
ALTER TABLE foo AUTO_INCREMENT=1
Si ha eliminado las entradas más recientes, eso debería configurarlo para usar la siguiente más baja disponible. Como en, siempre que no haya 19, eliminar 16-18 restablecerá el incremento automático para usar 16.
EDITAR: Me perdí un poco sobre phpmyadmin. También puedes configurarlo allí. Vaya a la pantalla de la tabla y haga clic en la pestaña de operaciones. Hay un AUTOINCREMENT
campo allí que puedes configurar manualmente para lo que necesites.