[firebase-br] Res: reenumerar um campo autoincremento

Alexandre Pereira Bühler alexandre em simaoebuhler.com.br
Qua Fev 23 18:27:36 -03 2011


Em agosto de 2010 perguntei como reenumerar uma campo que estava fora de
seqüencia.
EX: sequencia hoje 1,4,6,7,8,9,10,12
deverá ficar 1,2,3,4,5,6,7,8,9,10,12.
Eu importava um tabela de clientes de um dbf.
Queria que ela ficasse com o código de cliente em ordem númerica sem furos.
As soluções apresentadas pelos colegas não surtiram efeito.
Talvez eu estivesse fazendo da forma errada do que foi proposto nas
soluções.
Hoje, depois de modelar o sistema e fazer a interface, voltei a esta parte.
Precisava importar os dados.

A solução que achei foi esta:

Criei um generator.
Alterei este generator para 0 (zero).

ALTER SEQUENCE GEN_CLIENTES_CODIGO RESTART WITH 0

Depois fiz um update no campo CODIGO com o generator

update "CLIENTES” set CODIGO = (SELECT GEN_ID( GEN_CLIENTES_CODIGO, 1 ) FROM
RDB$DATABASE)

Assim obtive a sequencia correta, eliminei os registros vazios e duplicados
que o Clipper deixou e pude partir para minha PK 

Espero que as respostas anteriores e a minha possam ajudar outros.

Obrigado


-- 
Alexandre Pereira Bühler
Técnico Eletroeletrônica - Senai - MG
Linux User: 397.546
Colunista: www.delphisophp.com
Owner: http://br.groups.yahoo.com/group/freepascal/
Liberdade é essencial. Use GNU/Linux.
Legalize os softwares de sua empresa
 
Simão &  Bühler Ltda (Infobrindes)
Instalação, manutenção, venda de servidores e computadores com GNU/Linux.
http://www.simaoebuhler.com.br
Hardware acesse, veja e tenha produtos com qualidade, garantia e nota
fiscal.
http://www.simaoebuhler.com.br/loja
alexandre em simaoebuhler.com.br
Telefone: (41) 3538-5428
 
Infobrindes (Simão &  Bühler Ltda)
Brindes e material promocional.
http://www.infobrindes.com.br
alexandre em infobrindes.com.br
Telefone: (41) 3532-5428








Mais detalhes sobre a lista de discussão lista