Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Tarde
Estou tentando organizar uma uma banco de dados que esta meio bagunçado da seguinte forma
O campo id começa com 1 e vai ate o id 14, dai começa com 206 e vai ate 234, e começa com 256 e vai ate 305 e assim vai ou seja tenho espaço de um id pra outro e gostaria de colocar uma sequencia inicianco de 1 e ate o ultimo que e 810.
assim 1,2,3,4,5,6.....810
se deu pra entender gostria de uma luz de como fazer isso dinamicamente sem prescisar fica editando registro por registro.
Hum foi analisar direitinho e usar pra ver . .
valeu pela dica
fui dar uma olhada melhor e não precisa do NOVO, dá uma olhada como ficou
loop
if antigo + 1 = v_id then;
-- não mexe
else;
update tabela set id = antigo + 1 where id = v_id;Bem pessoal obrigado pelas dicas mas ainda nuam consegui fazer funcionar este exemplo acima
ALGUNS PARAMETROS:
Nome da tabela: yp_list
Campo: listid
loop
if antigo + 1 = v_id then;
-- não mexe
else;
update yp_list set listid= antigo + 1 where listid = v_id;qual é o problema que está ocorrendo?
a forma mais simples....
supunhetamos que você tenha uma tabela assim...
tabela_original: id_cliente, nome, sexo
você criaria uma nova tabela assim...
tabela_nova: id_cliente, nome, sexo, campo_auto (com a funcionalidade auto_increment/not null)
você insere os dados da tabela original na tabela nova, onde ela automaticamente irá gerar o numerador sequencial em seu novo campo "campo_auto"
insert into tabela_nova (id_cliente, nome, sexo)
select id_cliente, nome, sexo from tabela_original;
abs,
ska!
sugiro que você faça uma store procedure, a você lista todos os IDs, cria um while do primeiro ao último e verifica se o próximo número é 1 maior que o anterior, se for, beleza, se não for, aí você grava o ID + 1
begin select id into v_id from tabela; loop end if end loop;coloquei o IF assim para ficar mais claro de entenderespero que ajude