Majoritatea dintre programatorii care au lucrat cu bazele de date s-au lovit de-a lungul timpului de situația reindexării unei tabele. E vorba despre acele tabele care conțin un index auto_increment a cãrui valoare se mãrește cu 1 la fiecare introducere a unor valori noi în tabelã. Din diverse motive anumite valori trebuie șterse, iar indecșii nu se refac. Asfel, în tabelã apar "gãuri" în numãrãtoarea indexului, iar indecșii nu mai sînt consecutivi.
Situația este absolut irelevantă pentru tabelele cu puține elemente, pentru că (în funcție de tipul ales) indexul poate ajunge pînă la numărul milioanelor, dar situația poate deveni o problemă în cazul tabelelor cu adevărat mari.
Pentru a repara problema se executã în mysql urmãtorul cod, unde "nume_tabelã" va trebui schimbat cu numele tabelei pe care o folosiþi.
SET @var_name = 0;
UPDATE nume_tabela SET ID = (@var_name := @var_name +1);
Dupã aceea se cautã ultima valoare a indexului din tabelã (va fi deja renumãrat), hai sã zicem cã acea valoare este 15. Ultimul pas este stabilirea noii valori de auto-incrementare pentru a nu apare alte "gãuri" în numãrãtoare, iar indexul sã sarã de la 15 la 25, de exemplu. Aceastã valoare va fi ultima valoare a indexului + 1. Conform exemplului dat, sintaxa ce mai rãmîne de executat este urmãtoarea:
ALTER TABLE nume_tabela AUTO_INCREMENT = 16;