sql >> Databasteknik >  >> RDS >> Mysql

MySQL - automatiskt minskande värde

Du bör inte göra det.
Ta inte en automatiskt ökad unik identifierare som ett ordningstal.
Ordet "unik" betyder att identifieraren ska sitta fast på sin rad för alltid .

Det finns inget samband mellan dessa siffror och uppräkning.
Föreställ dig att du vill välja poster i alfabetisk ordning. Vart skulle dina värdefulla siffror ta vägen? En databas är inte som en ordnad lista, som du förmodligen tror. Det är inte en platt fil med rader lagrade i en fördefinierad ordning. Den har en helt annan ideologi. Rader i databasen har ingen ordning. Och kommer endast att beställas vid en viss tidpunkt, om den uttryckligen ställts in av ORDER BY klausul.
Det är också meningen att en databas ska göra en sökning åt dig. Så du kan se att med filtrerade rader eller annan ordning kommer detta automatiska ökningsnummer att ha absolut ingenting att göra med de verkliga radernas positioner.

Om du vill räkna upp resultatet - det är ett presentationslagers jobb. Lägg bara till en räknare på PHP-sidan.

Och igen:dessa siffror ska identifiera en viss post. Om du ändrar det här numret skulle du aldrig hitta din post igen.

Ta just den här sidan till exempel. Stack Overflow identifierar sina frågor med ett sådant nummer:

Så tänk dig att du har sparat den här sidadressen till ett bokmärke. Nu kommer Jeff och numrerar om hela databasen. Du trycker på ditt bokmärke och landar på den andra frågan. Hela sidan skulle bli en fruktansvärd röra.

Kom ihåg:Att numrera om unika identifierare är dåligt!



  1. Fel vid körning av Mariadb-uppdateringssatsen

  2. Beräknar avstånd mellan postnummer i PHP

  3. Använd inte sys.sql_dependencies i SQL Server (den är utfasad)

  4. MySQL använder inte index när du kontrollerar =1 , men använder det med =0