Salve a tutti, oggi, per caso, mi sono trovato davanti ad un dubbio amletico.
Ho una tabella di questo tipo:
codice:
CREATE TABLE `libri` (
  `id_libro` int(11) NOT NULL AUTO_INCREMENT,
  `isbn` varchar(255) NOT NULL,
  `autore` varchar(255) NOT NULL,
  `titolo` varchar(255) NOT NULL,
  `casa_editrice` varchar(255) NOT NULL,
  `anno` varchar(4) NOT NULL,
  `materia` varchar(255) DEFAULT NULL,
  `prezzo` float NOT NULL,
  `venduto` varchar(1) NOT NULL DEFAULT '0',
  `data_vendita` varchar(255) NOT NULL,
  PRIMARY KEY (`id_libro`),
  FULLTEXT KEY `autore` (`autore`,`titolo`)
);
e mi sono accorto che cancellando un record, il capo id_libro (che è di tipo AUTO_INCREMENT) logicamente continua ad assegnare id non recuperando quelli perduti dalla cancellazione.
Se ho i record con id_libro 1,2,3,4,5,6,7,8... e rimuovo il numero 8, al successivo inserimento avrà assegnato il numero 9; idem se rimuovo il numero 4 avrò un buco tra il record 3 ed il record 5.
Siccome sto utilizzando questo tipo di database per organizzare un mercatino del libro usato in cui la catalogazione dei libri avviene per numero crescente da 1 a n, non è cosa buona avere questi buchi di assegnazione.
Esiste un modo per riordinare gli id_libro? In modo che quando si presenta un buco come quello tra 3 e 5 dell'esempio di prima, possa scalare in alto tutta la lista andando ad assegnare nuovamente il numero 4 precedentemente cancellato?

Grazie mille!!