Reindexar chaves primárias

fala galera, blz?

então peguei banco de ceps para utilizar em um software meu, e deletei todas as cidades que nao me interessam, certamente deletei milhoes de registros…

ESTOU UTILIZANDO MYSQL

E minhas chaves primárias ficaram com um grande salto, como por exemplo:

1,238,1723983,242472

Então tem join de logradouro,bairro,cidade,estado,pais,tipologradouro

gostaria de saber se existe algum software ou script ou metodo fácil para reindexar tais chaves de modo a ficar 1,2,3,4,5,6,7,8,9… em todas estas tabelas, sem fuder o relacionamento?

vlw brothers

Por que você precisa disso? Qual o problema dos ids não estarem em sequência?

Não sei se o mysql tem suporte a tudo isso, mas seguiria o procedimento abaixo:

  • Transformava os relacionamentos em ON UPDATE CASCADE (define isso na criação da foreign key)

  • Crie um select na tabela principal colocando uma coluna a mais com o número da linha
    ( para isso você vai precisar de algum recurso do banco, o rownum do oracle por exemplo)

  • Dar um update utilizando o resultado do select acima.
    (Seria um update com join… novamente, vai depender da sintaxe do banco)

Em uma visão geral seria isso…
De qualquer forma, acho que você pode simplesmente deixar os ids como estão…
Quando precisar atualizar esta base de ceps, manter os ids originais pode até te ajudar.

É porque eu exibido a chave primária na tela =D. Vou testar aqui, vlw.

Ah, já tive problemas com isso.

Umas das regras gerais que sigo é não exibir o id na tela.

Se for pra ficar visível, melhor criar uma coluna no banco específico para exibição.

Geralmente, o que o usuário vê, ele quer mexer… daí começam seus problemas.

EDIT:

Aliás… Em se tratando de uma tabela de ceps…você já tem um código para mostrar pro usuário: o próprio cep