Olá amigos, tenho uma tabela com um campo ID auto_increment, ao excluir um registro é possivel de forma automática atualizar todos os ids em sequencia? Ex: Tenho 5 regitros id = 1,2,3,4,5; ao excluir o id 2 ficará apenas 1,3,4,5; queria que automaticamente ficasse 1,2,3,4. É possivel?
Campo ID em sequencia
12 Respostas
Não.
Então tenho que atualizar ‘UPDATE’ em todos manualmente ao excluir! Não é uma boa prática né?
Atualizar ID não existe, esquece isso! ID não se altera.
Atualizar ID não existe, esquece isso! ID não se altera.
Isso mesmo, não se altera. Imagina a mão de obra se você vai alterar um ID que seja relacionamento em varias outras tabelas… Você teria que alterar inúmeras vezes, em inúmeros lugares.
O ID é para deixar quieto, não mexa com eles 
Atualizar ID não existe, esquece isso! ID não se altera.
Eu sei, mas é que tô criando um joguinho ( simples apenas para estudo ) e ele gera um número e busca no banco o ID igual ao número gerado, então se for deletado o o id 15 e ele for gerado pelo programa, não retornará nada, e quando tiver vários registros inseridos e deletados? Entendeu?
Atualizar ID não existe, esquece isso! ID não se altera.
Eu sei, mas é que tô criando um joguinho ( simples apenas para estudo ) e ele gera um número e busca no banco o ID igual ao número gerado, então se for deletado o o id 15 e ele for gerado pelo programa, não retornará nada, e quando tiver vários registros inseridos e deletados? Entendeu?
Nesse caso, você deve criar um campo na tabela para gerenciar esses números e não o ID. Cria um campo código e dai você manipula ele.
Né mesmo !!!
Só se vc tiver TOC(transtorno obsessivo-compulsivo) em não querer deixar buracos na sequencia dos seus IDs.
Agora falando sério, vc ja pensou que se vc tiver que fazer isso vc teria que percorrer o banco de dados inteiro trocando todas as relações dessa tabela com as relacionadas.
Aaaa “joguinho”, to pensando que é coisa séria !!!
Não importa se é ‘joguinho’ ou ‘coisa séria’ o importante é que estou aprendendo algo a mais, estou procurando boas práticas, boas soluções que um dia poderá servir para uma coisa mais ‘séria’. Mesmo assim agradeço a todos!
Não importa se é ‘joguinho’ ou ‘coisa séria’ o importante é que estou aprendendo algo a mais, estou procurando boas práticas, boas soluções que um dia poderá servir para uma coisa mais ‘séria’. Mesmo assim agradeço a todos!
Uma solução seria não deletar, mas ter uma coluna com flag para ativo/inativo.
Caso o valor selecionado seja igual ao id de um registro marcado como ativo, o jogo coloca ele como inativo.
Caso o valor selecionado seja igual ao id de um registro marcado como inativo, o jogo retorna ao método e gera o número novamente.
Aliás, seria possível manter uma lista com os ids inativos, assim você nem perderia tempo indo ao banco.
Talvez tua intenção tenha sido outra, mas comentários desmotivadores não são necessários.
Você também, provavelmente, teve que fazer coisas que hoje considera infantis, como calcular a pessoa com maior idade e menor salário e mostrar se é um homem ou mulher.
Uma das formas mais interessantes e inteligentes de se aprender conceitos é criando jogos, por mais simples que pareça, eles conseguem desviar nosso foco da questão principal, facilitando o aprendizado.