Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Emerson Placido

Update

Recommended Posts

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

var antigo int;
novo int;
antigo = 0;
novo = 1;
v_id int;
begin
select id into v_id from tabela;
loop
novo := novo + 1;
if antigo + 1 = v_id then;
  -- não mexe
else;
update tabela set id = novo where id = v_id;
end if
end loop;
coloquei o IF assim para ficar mais claro de entender

espero que ajude

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
end if
antigo := antigo + 1
end loop;

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
end if
antigo := antigo + 1
end loop;

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.