cdfree 3 Denunciar post Postado Junho 18, 2014 Tenho um id na tabela e no insert auto1.nextval, so que durante o deservolvimento houve vários registros (1,2,3,4,5,6,7,8,......) e foram deletados, agora como posso ordena/atualizar a sequencia de (20,21,22,23,24,25) para (1,2,3,4,5,6)? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 18, 2014 Não é recomendado, pois : As tabelas que são FK desta tabela também deveriam ser atualizadas A sequence precisaria ser "dropada" e recriada com o novo valor menor É absolutamente necessário este reordenamento ? Esta chave não pode ter valores faltantes ("banguelas") ? Neste caso sequence não é a melhor implementação. ---- Compartilhar este post Link para o post Compartilhar em outros sites
cdfree 3 Denunciar post Postado Junho 18, 2014 Neste caso esta coluna não tem relação com outra tabela (não é chave estrangeira). Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 18, 2014 DROP SEQUENCE auto1; CREATE SEQUENCE auto1 MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ; BEGIN FOR R IN (SELECT * FROM TABELA ORDER BY CHAVE) LOOP UPDATE TABELA SET CHAVE = auto1.NEXTVAL WHERE CHAVE = R.CHAVE; END LOOP; END; Faça DUAS salvas antes de rodar isto. mas, repito, eu não faria a não ser em último caso. Compartilhar este post Link para o post Compartilhar em outros sites