Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak znaleźć kolejny bezpłatny unikalny 4-cyfrowy numer

Lepiej byłoby przechowywać tabelę ze zdefiniowanymi wszystkimi 10 000 możliwych wartości i flagą „w użyciu” na każdej z nich. W ten sposób zwolnienie numeru do ponownego wykorzystania jest prostą aktualizacją ustawienia „inuse=false”.

Ułatwia również znalezienie najniższej dostępnej wartości

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

Wykonanie tego z odpowiednimi blokadami/transakcjami uniemożliwiłoby co najmniej dwóm żądaniom uzyskanie tego samego identyfikatora, a ponieważ jest to mały stół, globalna blokada tabeli nie wpłynie znacząco na wydajność.

W przeciwnym razie utknąłbyś, szperając w tabeli użytkowników, próbując znaleźć pierwszą „przerwę” w sekwencji numeracji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Ile miejsca zajmuje pole NULL?

  2. Tabela nie istnieje po CREATE TABLE

  3. Jakie są realne warstwy abstrakcji bazy danych dla Pythona?

  4. PHP mysqli przygotowało instrukcję dla procedury składowanej bez parametru out

  5. Jak mogę połączyć się z inną bazą danych podczas działania aplikacji z Laravel?