Database Bordene har unike identifikasjonsnummer , kalt primærnøkler , for hver enkelt rad. MySQL for automatisk økning funksjonen tildeler automatisk et nytt nummer til et heltall kolonnen du angir som primær nøkkel, noe som sparer deg for tid som trengs for å lage din egen primærnøkkel og sporingskoden . Hvis du slippe rader , faller imidlertid sekvensen av auto - tilvekst verdier ute av sync med resten av kolonneverdiene . Auto - Increment Funksjon
auto- tilveksten funksjonen fungerer ved å holde en oversikt over rad identifikasjonsnummer på bordet selv. Når du angir en bestemt kolonne til auto - intervall, når du legger til en rad i denne tabellen , fylles MySQL ISAM motoren automatisk at kolonnen med en numerisk verdi som er én større enn verdien som identifiserte den siste raden du har lagt til . Funksjonen er ikke avhengig av dataene i rader selv, men sin egen rekord på den siste verdien det tildelt rad.
Komme ut av Sync
Når du slette rader fra tabellen , slette deg enkeltkomponenter i sekvensen av tall ISAM motor tildelt til radene . Hvis du sletter fjerde rad , for eksempel, så MySQL ikke gå tilbake og tildele numeriske verdier til feltet blir automatisk økes , for å opprettholde den numeriske sekvensen . Tilsvarende, hvis MySQL ga den siste raden du har lagt til en indentification antall 20 og du sletter det , tilordner ISAM -motoren fortsatt den neste raden du legger verdien 21 år.
Auto - Increment response
Fordi hensikten med auto - tilveksten er å gi hver rad i MySQL- tabellen en unik identifikator , spiller det ingen rolle om tallene den tildeler som identifikasjon har hull i sekvensen eller ikke. Det betyr bare at ingen to rader har samme ID-nummer. Program design som er avhengige av en uavbrutt sekvens av tall for å navigere i databasen tabellen er upålitelige , fordi droppet database rader kan gjøre dem feil. Laster rad data inn i en matrise -lignende objekt og bruke element indekser er en mer stabil tilnærming.
Solution
å holde auto - økning kolonne i perfekt rekkefølge , fikse hull etter at du slippe rader fra tabellen. Når du slipper hele kolonnen , forkaster MySQL også sin egen rekord på det neste nummeret vil bruke for den neste raden du knytte tabellen . Når du gjenskape kolonne med samme auto - økning syntaks , fylles MySQL automatisk kolonnen med en ryddig sekvens av tall for hver rad du har for øyeblikket i databasen. Men for å opprettholde en perfekt sekvens , må du gjenta dette trinnet hver gang du slipper en rad fra tabellen.