La funzione di incremento automatico funziona tenendo un registro dei numeri di identificazione fila sul tavolo stesso. Quando si designa una particolare colonna a incremento automatico , ogni volta che si aggiunge una riga alla tabella , motore ISAM di MySQL popola automaticamente la colonna con un valore numerico che è maggiore di uno rispetto al valore che identifica l'ultima riga aggiunta. La funzione non si basa su i dati nei file stessi , ma il proprio record del l'ultimo valore è assegnato a una fila .
Getting Out of Sync
Quando si eliminano le righe dalla tabella , si eliminano i singoli componenti nella sequenza dei numeri del motore ISAM assegnato ai vostri file . Se si elimina la quarta fila , per esempio, allora MySQL non torna indietro e riassegnare i valori numerici per il campo che è sequenziale , al fine di mantenere la sequenza numerica . Allo stesso modo , se MySQL ha dato l' ultima riga si è aggiunto un numero di identificazione di 20 ed è stata eliminata , il motore ISAM assegna ancora la riga successiva si aggiunge il valore di 21 .
Incremento automatico risposta
Poiché lo scopo di auto-incremento è di fornire ogni riga della tabella MySQL un identificatore unico , non importa se i numeri che assegna l'identificazione hanno buchi nella sequenza o meno. Importa solo che non esistono due righe hanno lo stesso numero ID . Disegni di programma che si basano su una sequenza ininterrotta di numeri per la navigazione la tabella di database non sono affidabili , perché le righe del database cadute possono farli funzionare correttamente . Caricamento dei dati di riga in un array , come oggetto e utilizzando indicies elemento è un approccio più stabile .
Soluzione
Per mantenere la colonna a incremento automatico in sequenza perfetta , fissare i fori dopo si lascia cadere righe dal vostro tavolo . Quando si rilascia l'intera colonna , MySQL scarta anche il proprio record del numero successivo userà per la riga successiva si assegna quel tavolo . Quando si ricrea la colonna con la stessa sintassi di incremento automatico , MySQL popola automaticamente la colonna con una sequenza ordinata di numeri per ogni riga che hai al momento nel database. Tuttavia, per mantenere una perfetta sequenza , dovete ripetere questo passaggio ogni volta che si lascia cadere una riga dalla tabella .
Programmazione © www.354353.com