MySQL Pulando numeração do Auto Incremento

MySQL

13/03/2013

Olá a todos,

Estou desenvolvendo uma aplicação Windows Form C# + MySQL + Entity Framework 4.5, e o que acontence é o seguinte:
Tenho alguns campos que são obrigatórios nas tabelas do banco de dados, o Entity Framework está tratando isso e informa ao usuário uma mensagem quando o mesmo tenta gravar os dados no banco de dados e o mesmo deixou de informar algum campo que não pode ser em branco. Até aí tudo bem, o que está ocorrendo é que se no banco de dados estiver cido cadastrados 5 clientes por exemplo, se na proxima inserção ocorrer algo como sitado acima na proxima inserção válida ele não utiliza o proximo id que no caso seria o 6 e pula o mesmo e aparece 7. Existe uma forma de corrigir isto.
Elessandro Poças

Elessandro Poças

Curtidas 0

Respostas

Vagner Almeida

Vagner Almeida

13/03/2013

Crie um gatilho (Trigger) para fazer o auto incremento.

Veja como ficaria:



CREATE TRIGGER `NomeDaTabela_BI` BEFORE INSERT ON `NomeDaTabela` FOR EACH ROW 
BEGIN 
  if ((new.codigo = 0) or (new.codigo is null)) then
     set new.codigo = (select ifnull( max(codigo) , 0 ) + 1 from NomeDaTabela); 
  end if;   
END;



Espero ter ajudado.
GOSTEI 0
Elessandro Poças

Elessandro Poças

13/03/2013

Obrigado pela dica, vou testar..
GOSTEI 0
POSTAR