Nwlapcug.com


Incremento automatico MySQL è sincronizzato

Incremento automatico MySQL è sincronizzato


Tabelle di database hanno numeri univoci di identificazione, chiamati chiavi primarie, per ogni singola riga. Funzione di incremento automatico di MySQL assegna automaticamente un nuovo numero per una colonna integer specificato come chiave primaria, che consente di risparmiare il tempo necessario per creare la propria chiave primaria e il codice di monitoraggio. Se si elimina righe, tuttavia, la sequenza di valori di incremento automatico cade fuori sincronia con il resto dei valori della colonna.

Funzione di incremento automatico

La funzione di incremento automatico funziona mantenendo un record di numeri di identificazione di riga sulla tabella stessa. Quando si imposta una particolare colonna a incremento automatico, ogni volta che si aggiunge una riga alla tabella, motore di ISAM di MySQL popola automaticamente tale colonna con un valore numerico che è maggiore rispetto al valore identificato l'ultima riga che hai aggiunto. La funzione non si basa sui dati nelle righe se stessi, ma il proprio record dell'ultimo valore che è assegnato a una riga.

Sempre sincronizzati

Quando si eliminano righe dalla tabella, si eliminano singoli componenti nella sequenza di numeri, il motore di ISAM assegnato per le righe. Se si elimina la quarta riga, ad esempio, quindi MySQL non tornare indietro e riassegnare i valori numerici nel campo che è a incremento automatico, al fine di mantenere la sequenza numerica. Allo stesso modo, se MySQL ha dato l'ultima riga aggiunto un numero di identificazione di 20 e si elimina, il motore di ISAM ancora assegna alla riga successiva che si aggiunge il valore di 21.

Risposta di incremento automatico

Perché lo scopo di incremento automatico è quello di fornire ogni riga nella tabella MySQL un identificatore univoco, non importa se i numeri che assegna come identificazione hanno buchi nella sequenza o non. Importa solo che nessun due righe hanno lo stesso numero di ID. Disegni di programma che si basano su una sequenza ininterrotta di numeri per spostarsi all'interno della tabella di database non sono affidabili, perché è sceso righe di database possono farli funzionare correttamente. Caricamento dei dati di riga in un oggetto di tipo matrice e utilizzando elemento indicies è un approccio più stabile.

Soluzione

Per mantenere la colonna a incremento automatico in perfetta sequenza, Difficoltà fori dopo è eliminare righe dal vostro tavolo. Quando si elimina l'intera colonna, MySQL anche rigetti il proprio record del numero successivo che utilizzerà per la riga successiva è assegnare 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 avete attualmente nel database. Tuttavia, per mantenere una perfetta sequenza, è necessario ripetere questo passaggio ogni volta che si elimina una riga dal vostro tavolo.