sql >> Databasteknik >  >> RDS >> Mysql

Infoga i ett fält för automatisk ökning

Ok, innan du får svaret på din fråga måste jag varna dig för extremt dålig praxis du försöker göra där. Missförstå mig rätt, många har försökt göra det du gör och det är helt enkelt inte så som saker och ting ska fungera.

Ditt auto_incremented ID är en primärnyckel. Primärnyckel används för att unikt identifiera en rad i en tabell. Det är allt. Det har ingen annan speciell betydelse än det.

Så vad betyder det för dig? Det betyder att din idé att du ska "reservera" 1 - 10k för admins är dålig. Varför är det dåligt? För att du manipulerar med primärnyckeln. Du bör aldrig bestämma vad värdet på primärnyckeln ska vara, det är databasernas uppgift av många anledningar (konsistens till exempel). Den andra saken varför det är dåligt är att du har begränsat någon till endast 10 000 möjliga poster. Å andra sidan, hur kommer du att räkna ut vad nästa post för admins är? Vad händer om du har angett 1, 2, 3, 4 och sedan raderar posten med ID =3? Vad händer då? Vad är ditt nästa värde i följd? 3 eller 5?

Med det sagt bör du nog tänka om din strategi. Varför inte lägga till ett fält "isAdmin" som talar om för dig om en administratör har lagt upp något eller inte?




  1. mysqli senaste infognings-id

  2. SQL-uppsättningsvärden för en kolumn är lika med värden för en annan kolumn i samma tabell

  3. ORA-29977:Kolumntyp som inte stöds för frågeregistrering i garanterat läge

  4. Hur man sparar subattribut i 3:e tabellen i laravel