Estou confuso aqui, crio uma tabela e tenho 2 colunas de id e nome.
Agora id é chave primária, não null e incremento automático.
Suponha que eu dispare:insert into table (name) values('test');
isso vai me dar:
1 | test
Agora se eu disparar:alter table table_name auto_increment = 5;
isso preencherá o id com 5 na próxima inserção.
agora, se eu excluir o valor de id = 5 e inserir novamente:insert into table (name) values ('test2');
isso me dá:
6 | test2
por que não me dá 5 de novo?
Também não é possível que não possamos redefinir os valores auto_increment existentes para o desejado no MySql?
Acho que você encontrará a resposta na documentação do MySQL: http://dev.mysql.com/doc/refman/5.5/en/innodb-auto-increment-handling.html
Observe em particular como a opção/variável 'innodb_autoinc_lock_mode' afeta isso. No MySQL 5.1+ esta variável é "1" como padrão - no 5.0 e antes era "0". O motivo para defini-lo como "1" é que ele melhora o desempenho da replicação em alguns cenários. Se você não usar a replicação, não fará diferença e defini-la como "0" deve evitar as 'lacunas' no contador de incremento automático na maioria dos casos.
Mas não há - e nunca houve - nenhuma garantia (no MySQL ou em qualquer RDBMS) de que os valores de auto_increment sempre serão sequenciais sem lacunas. O propósito dos valores auto_increment é - e APENAS é - garantir uma identificação única de cada linha. O valor em si não tem importância.