Se o campo for sua chave primária...
...então, como dito em outro lugar nesta questão, você não deveria estar alterando os IDs. Os IDs já são únicos e você não precisa nem deseja reutilizá-los.
Agora, isso disse...
Caso contrário...
É bem possível que você tenha um diferente campo (ou seja, bem como o PK) para alguma ordenação definida pelo aplicativo. Contanto que essa ordenação não seja inerente a algum outro campo (por exemplo, se for definido pelo usuário), não há nada de errado com isso.
Você pode recriar a tabela usando um (temporário)
auto_increment
campo e, em seguida, remova o auto_increment
mais tarde. Eu ficaria tentado a
UPDATE
em ordem crescente e aplique uma variável de incremento. SET @i = 0;
UPDATE `table`
SET `myOrderCol` = @i:[email protected]+1
ORDER BY `myOrderCol` ASC;
Parece um desperdício fazer isso todas as vezes você exclui itens, mas infelizmente com essa abordagem de ordenação manual não há muito o que fazer se quiser manter a integridade da coluna.
Você poderia reduzir a carga, de modo que depois de excluir a entrada com
myOrderCol
igual a, digamos, 5
:SET @i = 5;
UPDATE `table`
SET `myOrderCol` = @i:[email protected]+1
WHERE `myOrderCol` > 5
ORDER BY `myOrderCol` ASC;
Isso "embaralhará" todos os valores a seguir em um.