Ir ao conteúdo

Posts recomendados

Postado

Olá, estou desenvolvendo uma aplicação pequena usando Java e SQLite. Acontece que quando eu deleto uma linha da coluna, o contador do autoincremento não é decrementado, por exemplo, caso eu delete a linha 4 a sequencia fica: 1 2 3 5

 

Descobri que isso acontece por causa de uma tabela sqlite_sequence, que guarda o contador do incremento.

 

Agora... toda vez que eu excluir uma linha preciso atualizar essa tabela? Ou é melhor eu deixar esse contador como está, com "buracos"? Ou é importante eu manter essa sequencia? Qual a melhor forma de lidar com essa situação? 

  • 3 semanas depois...
Postado

Isso é padrão para todos os bancos de dados, não pode atualizar o contador desta maneira, depois que o índice é criado ele não volta atrás, isso é para garantir a integridade dos dados, pois você pode estar usando este índice em outras tabelas, se não vira uma tremenda bagunça. Se você precisa de um marcador sequencial vai ter que lidar com isso manualmente, e ter cuidado em atualizar em todas as tabelas que utilizarem os dados vinculados, o que não é de fato uma boa prática.

  • Curtir 1
  • 3 semanas depois...
  • Moderador
Postado

@nanquinote O único jeito de dar "reset" é truncar a tabela.. mas isso apaga tudo. Então não é uma boa ideia.

 

Ele só é usado em casos quando você quer apagar todos os dados da tabela para zerar a contagem.

 

a sintaxe é:

truncate [tabela]

Só deixo o registro para a sua ciência. :thumbsup:

Fonte: Microsoft technet

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!