MySQL Auto-Increment är osynkroniserad

April 30

MySQL Auto-Increment är osynkroniserad


Databastabeller har unika identifikationsnummer, så kallade primärnycklar, för varje enskild rad. MySQL auto-ökning funktion tilldelar automatiskt ett nytt nummer till ett heltal kolumnen som du anger som primär nyckel, som sparar den tid som behövs för att skapa din egen primärnyckel och spårningskoden. Om du tappar rader, men din sekvens av autoTillväxtvärdena faller ur synk med resten av kolumnvärdena.

Auto-Öka Funktion

Den automatiska ökning funktionen fungerar genom att hålla ett register över rad identifikationsnummer på bordet själv. När du anger en särskild kolumn för automatisk ökning, när du lägger till en rad till tabellen, fylls MySQL: s ISAM motor automatiskt den kolumnen med ett numeriskt värde som är ett högre än det värde som identifierade den sista raden som du har lagt. Funktionen är inte beroende av data i raderna själva, men sitt eget rekord av det sista värdet tilldelas den till en rad.

Få osynkroniserad

När du tar bort rader från tabellen, du ta bort enskilda komponenter i sekvensen av siffror ISAM motor 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 som du har lagt ett identifieringsnummer 20 och du tar bort det, ISAM motorn fortfarande delar nästa rad du lägger till värdet av 21.

Auto-Öka svar

Eftersom syftet med auto-ökning är att ge varje rad i din MySQL tabellen en unik identifierare, det spelar ingen roll om siffrorna det delar som identifikation har hål i sekvensen eller inte. Det betyder bara att det inte finns två rader har samma ID-nummer. Ersättningsprogram som bygger på en oavbruten sekvens av siffror för att navigera databastabellen är opålitliga, eftersom tappade databasrader kan göra dem fel. Laddar rad- data i en array liknande föremål och använda elementet indicies är en mer stabil strategi.

Lösning

För att hålla din auto-ökning kolumn i perfekt ordning, fixa hål när du släpper rader från tabellen. När du släpper hela kolumnen, MySQL ignorerar också sitt eget rekord av nästa nummer kommer att använda för nästa rad du tilldela tabellen. När du återskapa den kolumn med samma auto-ökning syntax, fylls MySQL automatiskt kolonnen med en ordnad sekvens av siffror 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.


        

Välkommen till dig för att skicka en kommentar:

            
            
            
            

© 2020 Astrixsoft.com | Contact us: webmaster# astrixsoft.com