Ir ao conteúdo

MySql - Como "Zerar" um auto incremento?


Murilo Costa

Posts recomendados

Postado

Olá pessoal, sou novo aqui no fórum tanto quanto em programação.

Minha dúvida é a seguinte, tenho uma aplicação em Java (pura mesmo, sem nenhum tipo de "Framework"), que usa um banco de dados MySql para salvar Código, Nome, Telefone, RG e CPF de um paciente.

A coluna de CÓDIGO é de dados INT e usei um auto incremento para não ter que gerar um código a cada novo cadastro.

O que eu quero é: Que os dados sempre comecem do Código 1, pois, no atual momento, se eu cadastro 29 pessoas e em seguida apago todos os registros, no meu próximo cadastro, ele já inicia do código 30, e não é isso que quero.

Além disso, por exemplo, se eu inserir 6 pessoas e apagar a pessoa de código 3, queria que os cadastros após o 3 se modifiquem para minha coluna de códigos sempre ficar em ordem decimal crescente.

Agradeceria muito se puderem me ajudar.

 

Obrigado pela compreensão.

 

  • Moderador
Postado

Olá,

 

Você pode zerar a tabela, usando a palavra chave "truncate" [nome da tabela] no seu sql.

 

Veja que isso apaga todos os dados existentes e zera o autoincremento dela. ou seja, após isso, o primeiro registro inserido vai ser sempre o 1.

Este procedimento seria ao mesma coisa que um "reset" na tabela.

 

Cenário:

Cria uma tabela nova com a mesma estrutura... exatamente igual e usa esta instrução:

INSERT INTO banco_destino.tabela_destino  (SELECT * FROM banco_origem.tabela_origem);

Logo depois disso, você aplica um truncate na tabela origem... assim você mantém os dados anteriores.. e zera a tabela original para receber novo registros com o campo autoincrementado zerado.

 

Mas nisso tem um problema.. por exemplo

 

Inseriu 4 dados na primeira tabela..  copiou este dados para a segunda.. e truncou a primeira.

Na segunda tabela você recebe os campos IDs igual  da outra tabela.

 

Novamente você insere mais dados na primeira tabela...  quando tentar copiar novamente, vai dar erro de que a primary key já existe. 

 

Vendo isso.. a única coisa que resta é,  lidar com isso sem se preocupar com o campo id dele..  por exemplo:

 

inseriu 4 dados,  deletou o terceiro, e  inserir mais um, o próximo será  de id 5...  caso queira listar em ordem decimal crescente... é só utilizar o ORDER by ASC

 

isto listaria:

 

Registro 1

Registro 2

Registro 4

Registro 5

 

Uma ordem decimal crescente...

 

Portanto, não se preocupe com o ID autoincrementado.

Arquivado

Este tópico foi arquivado e está fechado para 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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!