Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda ID auto incremento.


Progamador - Joao

Pergunta

olá. eu criei um um ID para auto incrementar porem eu uso muito o excluir, eu queria saber como e que faz para o id que esta acima do excluido tome o luga do excluido. exemplo:

Tenho 3 ID, nas posições 1,2 e 3 e eu excluo a posição 2 , ai fica um vazio entre a 1 e 3, eu queria que a posição 3 fosse para a posição 2, alguém sabe como fazer?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Buenas Joao...

Seguinte, isto é bem complicado. Teria que fazer um "remelexo" inteiro no procedimento de EXCLUSÃO de registros.

Digamos, vou te dar um exemplo de notas fiscais.

Você lançou até a sequência 300, e excluiu a 298. Uma maneira que vejo eu em DB que poderia resolver este caso é, Uma trigger Delete, que analise as sequencias e execute uma alteração ou execute alguma Procedure tipo, "EXCLUI_NOTA_FISCAL" sei la algo do tipo, que vá analisar qual foi excluida e realizara um calculo, tipo:

SEQ_EXCLUIDA = 298 ( excluida )

MAX_SEQ = 300

DIFERENCA = 300 - 298 = 2

EXECUÇÃO = Exemplo "chucro":

UPDATE TABELA SET CAMPO_SEQ = CAMPO_SEQ - DIFERENCA WHERE SEQ >= SEQ_EXCLUIDA

Algo do tipo entendeu ? caso não fui muito claro, avise-me.

Abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Eu tenho arrepios toda vez que um iniciante fala em reorganizar campos com índices primários (Campos auto_increment sempre são para íncices primários)

O objetivo de índices primários em um banco de dados é garantir a unicidade de registros em tabelas e realizar ligações entre tabelas através de constraints e foreign keys.

Não há necessidade de "FAZER FICAR BONITINHO". São campos que ninguém vê. Se alguém está vendo estes campos algo está errado com a arquitetura, análise e programação deste sistema.

Link para o comentário
Compartilhar em outros sites

  • 0

Rapaz, eu até concordaria você se sua idéia fosse sempre dar o último ID sem muitos saltos pra não ficar uma PK com um número muito alto, pois as vezes são identificadores dentro de muitos sistemas. Mas isso que você está querendo seria muito chato de implementar, muito vulnerável a falhas, provocando um desastre legal no seu BD.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...