[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