Programação  
 
Conhecimento computador >> Programação >> Programação PHP /MySQL >> 
MySQL Auto - Incremento está fora de sincronia
tabelas de banco de dados têm números de identificação únicos , chamados chaves primárias, para cada linha individual. Função de auto -incremento do MySQL atribui automaticamente um novo número para uma coluna inteira você especificar como sua chave primária , o que economiza o tempo necessário para criar sua própria chave e rastreamento de código primário. Se você soltar linhas , no entanto, a sua seqüência de valores de incremento automático cai fora de sincronia com o resto dos valores da coluna. Auto - Incremento Função

A função de auto-incremento funciona mantendo um registro de números de identificação de linhas na própria mesa. Quando você designar uma determinada coluna de auto-incremento , sempre que você adicionar uma linha à tabela, motor ISAM do MySQL preenche automaticamente a coluna com um valor numérico que é maior do que o valor que identificou a última linha que você adicionou. A função não contar com os dados em suas linhas em si, mas o seu próprio recorde do último valor atribuído a ele uma linha .
Getting Out of Sync

Quando você excluir linhas de sua tabela, você excluir componentes individuais na seqüência de números do motor ISAM atribuídos a seus registros. Se você excluir a sua quarta linha , por exemplo, então o MySQL não voltar e reajusta os valores numéricos para o campo que está incrementando automaticamente , a fim de manter a seqüência numérica. Da mesma forma, se o MySQL deu a última linha que você adicionou um número de identificação de 20 e de excluí-lo , o motor ISAM ainda atribui a próxima linha de adicionar o valor de 21 .
Auto - Incremento resposta

Porque o propósito de auto-incremento é proporcionar cada linha em sua tabela MySQL um identificador único, não importa se os números que atribui como identificação têm buracos na seqüência ou não. Isso só importa que não há duas linhas têm o mesmo número de identificação . Projetos do Programa que dependem de uma seqüência ininterrupta de números para navegar tabela de banco de dados não são confiáveis ​​, porque as linhas de base de dados descartados pode torná-los defeito. Carregando os dados da linha em um objeto array -like e usar indicies elemento é uma abordagem mais estável.
Solution

Para manter a sua coluna de auto-incremento em seqüência perfeita, corrigir falhas depois de soltar as linhas de sua tabela. Quando você soltar toda a coluna , o MySQL também descarta o seu próprio recorde do próximo número que vai usar para a próxima linha que você atribui essa tabela. Quando você recriar a coluna com a mesma sintaxe de auto-incremento , MySQL preenche automaticamente a coluna com uma seqüência ordenada de números para cada linha que você tem atualmente no banco de dados . No entanto , para manter uma seqüência perfeita , você tem que repetir este passo a cada vez que você solta uma linha de sua tabela.

Anterior :

Próximo : No
  Os artigos relacionados
·Como capturar um título página usando PHP 
·Como Ler Consulta Cordas em PHP 
·Ajuda com PHP e compilação Falha 
·PHP __ Autoload Conflito 
·Get_headers Vs . Velocidade cURL em PHP 
·Como usar o SQL para determinar o XY mais próximo Coor…
·Como juntar duas strings em PHP 
·Como inserir um arquivo PHP em todas as páginas 
·Funções da Faixa Tabela PHP 
·Como fazer comentários em um arquivo PHP 
  Artigos em destaque
·Como ler um objeto em jQuery 
·Diferença entre determinísticas e não determinístic…
·Como posso mudar meu arquivo EXE para um arquivo CPP 
·Como obter um arquivo eficiente usando FTP em Java 
·Função de AS3 classe Sprite 
·Como faço para evitar linhas de nulos em 'Select cláu…
·Quais são as duas línguas mais comumente utilizado pa…
·Como remover a caixa azul em torno de links em HTML 
·Como executar comandos de console em Java 
·O que são arquivos de esqueleto 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados