MySQL Pulando numeração do Auto Incremento

13/03/2013

4

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.
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
Obrigado pela dica, vou testar..
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira