“Conocimientos Programación>Programación PHP /MySQL

MySQL incremento automático no está sincronizado

2013/12/31
tablas de bases de datos tienen un número de identificación único , llamado claves principales , para cada fila individual. Función de incremento automático de MySQL automáticamente asigna un nuevo número a una columna entera se especifica como clave principal , lo que le ahorra el tiempo necesario para crear su propia clave principal y el código de seguimiento . Si se le cae filas , sin embargo , la secuencia de valores de incremento automático cae fuera de sincronía con el resto de los valores de la columna . Función

La función de incremento automático Auto - Incremento trabaja , manteniendo un registro de los números de identificación de la fila en la tabla en sí . Cuando se designa una columna en particular de 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 mayor que el valor que identifica la última fila que ha añadido. La función no se basa en los datos de sus propias filas , pero su propio récord del último valor es asignado a una fila.
Se salga de sincronismo

Cuando elimina las filas de la tabla, se elimina componentes individuales en la secuencia de los números del motor ISAM asignado a sus filas. Una vez eliminada la cuarta fila , por ejemplo, entonces MySQL no regresa y vuelve a asignar valores numéricos en el 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 agregó un número de identificación del 20 y que se elimina, el motor ISAM todavía asigna la siguiente fila se agrega el valor de 21 .
Incremento automático Respuesta

Debido a que el propósito de auto -incremento es proporcionar a cada fila de la tabla de MySQL un identificador único, que no importa si los números que asigna como identificación tienen agujeros en la secuencia o no. Sólo importa que no haya dos filas tienen el mismo número de identificación. Programa de diseños que se basan en una secuencia ininterrumpida de números para navegar la tabla de base de datos no son fiables, ya que los registros de base de datos caídas pueden hacer que un mal funcionamiento . Carga de los datos de la fila en un array de objetos similares y el uso de índices del elemento es un enfoque más estable.
Solución

Para mantener su columna de incremento automático de la secuencia perfecta , arreglar los agujeros después de eliminar las filas de la tabla. Cuando se le cae toda la columna , MySQL también descarta su propio récord del siguiente número que utilizará para la siguiente fila se asigna esa mesa. Al volver a crear la columna con la misma sintaxis de incremento automático , MySQL automáticamente rellena la columna con una secuencia ordenada de números para cada fila que tiene actualmente en la base de datos . Sin embargo , para mantener una secuencia perfecta , hay que repetir este paso cada vez que cae una fila de la tabla.

Programación PHP /MySQL
¿Por qué mi PHP MySQL Página tan lento
Cómo reescribir URLs en archivos PHP a otro nombre de dominio
Cómo insertar un símbolo de porcentaje al lado de una cadena PHP
Cómo abrir un archivo PHP en Vista
Cómo instalar PEAR PHP en Ubuntu
Cómo matar a una conexión MySQL
Mysql PHP Tutorial Configuración de Windows
Cómo instalar JSON con PHP
Conocimientos Informáticos © http://www.ordenador.online