Databastabeller har unika identifikationsnummer , som kallas primärnycklar , för varje enskild rad . MySQL : s auto - inkrementfunktion tilldelar automatiskt ett nytt nummer till ett heltal kolumnen som du anger som primär nyckel , vilket sparar dig den tid som behövs för att skapa en egen primärnyckel och spårningskod . Om du tappar rader faller dock din sekvens av auto - delproven värden ur synk med resten av kolumnvärdena . Auto - inkrementfunktion
automatisk ökning funktionen fungerar genom att hålla ett register över radnumret identifiering på bordet själv . När du anger en särskild kolumn för automatisk ökning , när du lägger till en rad i den tabellen , fyller MySQL : s ISAM motorn automatiskt att kolonnen med ett numeriskt värde som är ett högre än det värde som identifierade den sista raden du lagt . Funktionen är inte beroende av data i dina rader själva , men sitt eget rekord i det sista värdet är tilldelat till en rad .
Komma ur synk
När du tar bort rader från tabellen , raderar du enskilda komponenter i sekvensen av siffror ISAM motorn tilldelats dina rader . Om du tar bort din fjärde raden , till exempel , då MySQL inte gå tillbaka och tilldela numeriska värden till fältet som automatiskt uppräkning , i syfte att bibehålla den numeriska sekvensen . Likaså om MySQL gav den sista raden du lagt en identifikation antal 20 och du tar bort det , tilldelar ISAM motorn fortfarande nästa rad du lägger till värdet av 21 .
Auto - Öka Response
eftersom syftet med automatisk ökning är att ge varje rad i din MySQL tabellen en unik identifierare , spelar det ingen roll om siffrorna den tilldelar som identifiering har hål i sekvensen eller inte . Det betyder bara att det inte finns två rader har samma ID-nummer . Program mönster som bygger på en oavbruten sekvens av siffror för att navigera i databasen tabellen är otillförlitliga , eftersom tappade databas rader kan göra dem fel . Laddar raden data i en array -liknande föremål och använda elementet indicies är en mer stabil strategi .
Solution
att hålla din auto - ökning kolumn i perfekt ordning , fixa hål när du släppa rader från tabellen . När du släpper hela kolumnen , kasserar MySQL också sitt eget rekord i nästa nummer kommer att använda för nästa rad du tilldela tabellen . När du återskapa kolonnen med samma auto - inkrement syntax , fyller MySQL automatiskt kolonnen med en ordnad sekvens av nummer för varje rad du för närvarande har i databasen . Men för att upprätthålla en perfekt sekvens , måste du upprepa detta steg varje gång du släpper en rad från tabellen .