MySQL Pulando numeração do Auto Incremento

13/03/2013

0

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

Responder

Posts

19/03/2013

Vagner Almeida

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.
Responder

24/03/2013

Elessandro Poças

Obrigado pela dica, vou testar..
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar