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.
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
Curtir tópico
+ 0
Responder
Posts
19/03/2013
Vagner Almeida
Crie um gatilho (Trigger) para fazer o auto incremento.
Veja como ficaria:
Espero ter ajudado.
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
Clique aqui para fazer login e interagir na Comunidade :)