Mysql
 sql >> Database >  >> RDS >> Mysql

come riutilizzare le chiavi primarie cancellate in mysql?

Usando:

ALTER TABLE [your table name here] AUTO_INCREMENT = 1

... ripristinerà il valore auto_increment in modo che sia il successivo in base al valore esistente più alto esistente nella tabella. Ciò significa che non può essere utilizzato per correggere le lacune di più di uno.

L'unico motivo per farlo sarebbe per quelli cosmetici:al database non importa se i record sono sequenziali, solo che sono correlati tra loro in modo coerente. Non è necessario "correggere" i valori per il bene del database.

Se stai visualizzando l'id valori all'utente, motivo per cui vorresti che fossero sempre sequenziali, quindi consiglierei di aggiungere una chiave surrogata. Utilizzare la chiave surrogata per la visualizzazione all'utente, in modo che i valori possano essere ri-sequenziati in base alle esigenze, ma l'integrità referenziale non viene altrimenti modificata. La chiave surrogata in questo caso sarebbe una colonna intera.