sql >> Database teknologi >  >> RDS >> Mysql

MySQL - automatisk dekrementerende værdi

Det bør du ikke gøre.
Tag ikke en automatisk øget unik identifikator som et ordenstal.
Ordet "unik" betyder, at identifikatoren skal sidde fast på sin række for evigt .

Der er ingen sammenhæng mellem disse tal og optælling.
Forestil dig, at du vil vælge poster i alfabetisk rækkefølge. Hvor ville dine dyrebare tal gå hen? En database er ikke som en ordnet liste, som du sikkert tror. Det er ikke en flad fil med rækker gemt i en foruddefineret rækkefølge. Det har en helt anden ideologi. Rækker i databasen har ingen rækkefølge. Og vil kun blive bestilt på et udvalgt tidspunkt, hvis det eksplicit var angivet med ORDER BY klausul.
Det er også meningen, at en database skal søge efter dig. Så du kan se, at med filtrerede rækker eller anden rækkefølge har dette automatiske stigningsnummer absolut intet at gøre med de rigtige rækkers positioner.

Hvis du vil opregne outputtet - er det et præsentationslags opgave. Tilføj blot en tæller på PHP-siden.

Og igen:disse tal skulle identificere en bestemt post. Hvis du ændrer dette nummer, vil du aldrig finde din post igen.

Tag dette websted for eksempel. Stack Overflow identificerer sine spørgsmål med et sådant tal:

Så forestil dig, at du har gemt denne sideadresse som et bogmærke. Nu kommer Jeff og omnummererer hele databasen. Du trykker på dit bogmærke og lander på det forskellige spørgsmål. Hele webstedet ville blive et frygteligt rod.

Husk:Omnummerering af unikke identifikatorer er ondt!



  1. Skift funktion til PDO

  2. Eksporter database med MySQL Workbench med INSERT-sætninger

  3. Oracle sql:rækkefølge efter og distinkt klausul

  4. Kan ikke få mysql-connector-python til at installere i virtualenv