Como ajustar um campo "auto-increment" em MySQL

Escrito por micah mcdunnigan | Traduzido por josé fabián
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Como ajustar um campo "auto-increment" em MySQL
Não é necessário que os números sejam perfeitamente sequenciais para que o banco de dados funcione corretamente (Thinkstock Images/Comstock/Getty Images)

As tabelas de um banco de dados possuem números de identificação únicos chamados "chaves primárias" em cada linha. A função "auto-increment" (incremento automático) do MySQL calcula automaticamente um novo número para a coluna que você especificar como chave primária, o que economiza o tempo necessário para criar um elemento de rastreio. Se você eliminar linhas, no entanto, a sequência perderá o sincronismo com o resto dos valores da coluna.

Outras pessoas estão lendo

Função "auto-increment"

A função "auto-increment" funciona mantendo um registro dos números de identificação de linha dentro da própria tabela. Ao indicar que uma coluna é do tipo "auto-increment", o motor ISAM do MySQL coloca nela um valor automático ao adicionar uma linha, igual ao que identificou a última linha adicionada mais 1. A função não lê os dados existentes, mas se baseia em um registro interno do último valor utilizado.

Perda de sincronismo

Ao excluir linhas de uma tabela, excluem-se componentes individuais da sequência de números utilizados pelo motor ISAM. Se você excluir a quarta linha, por exemplo, o MySQL não dará números novamente ao campo para manter a sequência completa. Similarmente, se o MySQL tiver dado ao último registro o número 20 e você o excluir, o motor ISAM dará à próxima linha o número 21.

Resposta ao "auto-increment"

Como o propósito da função é dar um número único a cada linha da tabela MySQL, não importa se existem faltantes na sequência ou não. Apenas importa que não existam dois registros com o mesmo número. Os designs de programas que dependem de uma sequência ininterrompida de números para navegar pela tabela de um banco de dados não são confiáveis, pois os registros excluídos podem fazer com que falhem. Carregar os dados em um objeto do tipo "array" e usar índices é uma opção mais estável.

Solução

Para manter uma coluna "auto-increment" em uma sequência perfeita, complete os números faltantes após excluir registros da tabela. Se você excluir a coluna inteira, o MySQL descartará o próprio registro do próximo número que usará para a seguinte linha. Ao criá-la novamente com a mesma sintaxe, o MySQL colocará nela uma sequência ordenada de números para os registros presentes. No entanto, você deverá repetir o processo toda vez que excluir colunas do banco de dados.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível