The B3S Posted February 6, 2012 Report Share Posted February 6, 2012 Gostaria a cada cadastro em uma tabela gerasse um id que partisse do 1, a cada cadastro, em sequencia.ex: 1° cadastro o id retornasse 1 o 2° cadastro o id retornasse 2 e assim por diante.tem um problema, gostaria que quando eu apagasse um registro o id que fou apagado fosse gerado novamente.ex: um cadastro do id 360 foi excluido, gostaria que o proximo cadastro fosse 360 para que fique em sequencia sem pular numeros. Link to comment Share on other sites More sharing options...
0 isaikki Posted February 7, 2012 Report Share Posted February 7, 2012 Boa tardeentão, para implementar algo assim, você precisaria fazer uma mudança simples no seu banco, por exemplo, ao invés de excluir um usuário, você atualiza um campo para ver se ele está ativo ou inativo, daí, qd for incluir um usuário, você ve o número mínimo que um usuário inativo tem... deixa eu colocar em códigoao excluir um usuário, apenas desative-oupdate usuario set ativo = 'F' where idUsuario = 360 mesmo excluindo vários usuários, a consulta abaixo irá preenchendo no id mais baixo update usuario set nomeUsuario = 'nome', enderecoUsuario = 'endereco' where idUsuario = (select min(idUsuario) from usuario where ativo = 'F')antes de fazer esse código, você deve fazer um controle para saber se existe usuários inativos ou não, se não tiver usuários inativos, você deve fazer um insert como sempre fez, não esquecendo de setar o campo ativo como 'T', e quando for fazer um select para buscar os usuários, colocar uma cláusula no where retornando os usuários com ativo = 'T'qualquer coisa falaê Link to comment Share on other sites More sharing options...
0 The B3S Posted February 9, 2012 Author Report Share Posted February 9, 2012 Boa tardeentão, para implementar algo assim, você precisaria fazer uma mudança simples no seu banco, por exemplo, ao invés de excluir um usuário, você atualiza um campo para ver se ele está ativo ou inativo, daí, qd for incluir um usuário, você ve o número mínimo que um usuário inativo tem... deixa eu colocar em códigoao excluir um usuário, apenas desative-oupdate usuario set ativo = 'F' where idUsuario = 360 mesmo excluindo vários usuários, a consulta abaixo irá preenchendo no id mais baixo update usuario set nomeUsuario = 'nome', enderecoUsuario = 'endereco' where idUsuario = (select min(idUsuario) from usuario where ativo = 'F')antes de fazer esse código, você deve fazer um controle para saber se existe usuários inativos ou não, se não tiver usuários inativos, você deve fazer um insert como sempre fez, não esquecendo de setar o campo ativo como 'T', e quando for fazer um select para buscar os usuários, colocar uma cláusula no where retornando os usuários com ativo = 'T'qualquer coisa falaêOk, deu certo , isto me ajudou muito. Obrigado. Link to comment Share on other sites More sharing options...
Question
The B3S
Gostaria a cada cadastro em uma tabela gerasse um id que partisse do 1, a cada cadastro, em sequencia.
ex: 1° cadastro o id retornasse 1 o 2° cadastro o id retornasse 2 e assim por diante.
tem um problema, gostaria que quando eu apagasse um registro o id que fou apagado fosse gerado novamente.
ex: um cadastro do id 360 foi excluido, gostaria que o proximo cadastro fosse 360 para que fique em sequencia sem pular numeros.
Link to comment
Share on other sites
2 answers to this question
Recommended Posts