-
MySQL incremento automático no está sincronizado
-
tablas de bases de datos tienen números de identificación únicos, llamados claves primarias, para cada fila individual. la función de incremento automático de MySQL automáticamente asigna un nuevo número a una columna entera se especifica como su clave principal, lo que le ahorra el tiempo que se necesita para crear su propio código de clave principal y el seguimiento. Si se le cae filas, sin embargo, su secuencia de valores de incremento automático cae fuera de sincronía con el resto de los valores de la columna.Función de incremento automático
La función de incremento automático funciona manteniendo un registro de los números de identificación de fila en la tabla en sí. Cuando se designa una columna en particular al incremento automático, cada vez que se agrega una fila a la tabla, el motor ISAM de MySQL rellena automáticamente esa columna con un valor numérico que es uno mayor que el valor que identifica la última fila que ha añadido. La función no se basa en los datos en sus filas en sí, sino su propio récord del último valor se asigna a una fila.
Se salga de sincronismo
Cuando se elimina filas de su tabla, se eliminan los componentes individuales en la secuencia de números que el motor ISAM asignado a su filas. Una vez eliminada la cuarta fila, por ejemplo, entonces MySQL no volver atrás y vuelva a asignar valores numéricos a campo que se incrementa automáticamente, con el fin de mantener la secuencia numérica. Del mismo modo, si MySQL dio la última fila que ha añadido un número de identificacion de los 20 y que se elimina, el motor ISAM todavía asigna la siguiente fila se agrega el valor de 21.
Incremento automático de respuesta
Debido a que el objetivo de incremento automático es proporcionar a cada fila de la tabla de MySQL un identificador único, no importa si los números de identificación que asigna como tienen agujeros en la secuencia o no. Sólo importa que no haya dos filas tienen el mismo número de identificación. diseños de los programas que se basan en una secuencia ininterrumpida de números para navegar por la tabla de base de datos no son fiables, ya que los registros de base de datos se redujo pueden hacer que funcione mal. Cargando los datos de fila en un objeto de tipo vector y el uso de índices del elemento es un enfoque más estable.
Solución
Para mantener su columna de incremento automático en secuencia perfecta, arreglar los agujeros después de eliminar las filas de la tabla. Al colocar toda la columna, MySQL también descarta su propio registro del siguiente número que utilizará para la siguiente fila se asigna esa tabla. Al volver a crear la columna con la misma sintaxis de incremento automático, MySQL automáticamente llena la columna con una secuencia ordenada de números para cada fila tiene actualmente en la base de datos. Sin embargo, para mantener una secuencia perfecta, usted tiene que repetir este paso cada vez que se le cae una fila de la tabla.