quinta-feira, 5 de fevereiro de 2015

Como zerar um campo auto_increment no MySQL

Aparelho eletrônico com um botão para resetar.
A forma com que o MySQL trabalha com campos do tipo auto_increment é muito intuitiva, com uma simples configuração (demarcar um campo) o banco de dados automaticamente busca o próximo valor disponível, gerando assim id's que são incrementáveis ao momento que novos registros são inseridos na tabela.

Mas o que é um campo auto incremento?


Chamamos de auto incremento o campo que automaticamente gera novos identificaremos para si, sem a necessidade de informar valores.

Por padrão, ao alimentarmos uma tabela que possui um campo com esta característica, nós desprezamos ele nas instruções insert e values, ou atribuímos o valor null na instrução values caso tenhamos passado o campo na instrução insert, esta omissão do campo é feita porque o MySQL irá gerar automaticamente os valores para o campo baseado-se no próximo valor disponível.

E como redefinir (ou zerar, reiniciar...) o valor do campo auto_increment?


Você pode redefinir o valor do campo auto increment de duas formas, vejamos:

1º - Através de Alter Table.

 ALTER TABLE tabela AUTO_INCREMENT = 1;  

2º - Através de Truncate Table (Cuidado com esta alternativa).

 TRUNCATE TABLE tabela;  

No primeiro caso os dados são mantidos em sua tabela, somente os valores do campo que você configurou como auto incremento serão atualizados, já no segundo caso toda sua tabela é apagada, por isso, somente execute este passo se realmente deseja reiniciar a numeração sem se importar com os dados, e o mais importante, não custa ter um backup da tabela.

Ficou com alguma dúvida? Posta ela nos comentários, ou veja se ela já não esta respondida:


Perguntas Frequentes


É possível reiniciar a numeração e utilizar um incremento diferente de 1 em 1?
No MySQL isto não é possível, você encontrará esta facilidade no PostgreSQL, no Oracle, SQL Server (...).

Como faço para saber qual será o próximo valor do campo auto incremento?
R: Veja como na dica do colega mandrake.

2 comentários: