Pesquisa personalizada



Como fazer o RESEED de AUTO_INCREMENT

Tenho uma tabela em meu Banco de Dados com uma coluna onde a PK é um INTEGER AUTO_INCREMENT cujo valor vai continuar crescendo quando dados são adicionados ou apagados desta tabela.

Primeiro Problema:
10 linhas de dados foram adicionados a tabela das quais linhas 9 e 10 foram removidas. Pelas regras do Auto Incremento o próximo valor será 11 e não 9.

Solução:
Use a query:
ALTER TABLE NomeDaTabela AUTO_INCREMENT = 1

Isto vai retornar o próximo valor do auto incremento para o atual maior valor na coluna +1. Assim o valor do auto incremento recomeça do 9 para o próximo inserto.

Segundo Problema:
10 linhas de dados foram adicionados a tabela das quais linhas 4 e 5 foram removidas. Pelas regras do Auto Incremento o próximo valor será 11 mas eu gostaria que fosse 4.

Solução:
Use a query:

SET insert_id = 4;
INSERT INTO  NomeDaTabela VALUES (’blah’, ‘…’);

Isto vai adicionar valores a linha 4.

O SET insert_id = #
(onde # é o valor do proximo auto incremento a ser usado) vai marcar o proximo valor de auto incremento a ser usado e a proxima query(INSERT) que for executada usara este valor.








Leave a Reply