sql >> Databasteknik >  >> RDS >> Mysql

Hur man hittar nästa gratis unika 4-siffriga nummer

Du skulle vara bättre att lagra en tabell med alla 10 000 möjliga värden definierade, och en "in-use"-flagga på varje. På så sätt är frisläppandet av numret för återanvändning en enkel uppdatering för att ställa in "inuse=false".

Det är också enkelt att hitta det lägsta tillgängliga värdet

SELECT idstring
FROM idstringtable
ORDER BY idstring ASC
WHERE (available = 1)
LIMIT 1

Att göra det med lämpliga lås/transaktioner skulle förhindra att två eller flera förfrågningar får samma ID, och eftersom det är ett litet bord skulle ett globalt tabelllås inte påverka prestandan nämnvärt.

Annars skulle du fastna och rota runt ditt användarbord och försöka hitta det första "gapet" i numreringssekvensen.



  1. Lär dig grundläggande dataanalys med SQL-fönsterfunktioner

  2. Hur ASIN() fungerar i MariaDB

  3. MySQL misslyckas på:mysql ERROR 1524 (HY000):Plugin 'auth_socket' är inte laddad

  4. Sanering av arrayvärden innan mysql-infogningar