MySQL Pulando numeração do Auto Incremento
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
Curtidas 0
Respostas
Vagner Almeida
13/03/2013
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.
GOSTEI 0
Elessandro Poças
13/03/2013
Obrigado pela dica, vou testar..
GOSTEI 0