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

Come gestire la frammentazione della colonna ID auto_increment in MySQL

La rinumerazione creerà confusione. I rapporti esistenti faranno riferimento al record 99, tuttavia, se il sistema rinumera, potrebbe rinumerare quel record a 98, ora tutti i rapporti (e le UI popolate) sono errati. Una volta assegnato un ID univoco, questo deve rimanere fisso.

L'utilizzo dei campi ID per qualcosa di diverso dalla semplice numerazione univoca sarà problematico. Avere un requisito per "nessuna lacuna" è semplicemente incoerente con il requisito di poter eliminare. Forse potresti contrassegnare i record come eliminati anziché eliminarli. Allora non ci sono davvero lacune. Supponiamo che tu stia producendo fatture numerate:avresti una fattura annullata di valore zero con quel numero anziché eliminarla.