sql >> Base de Datos >  >> RDS >> Mysql

Cómo encontrar el próximo número único gratuito de 4 dígitos

Sería mejor almacenar una tabla con los 10,000 valores posibles definidos y una marca de "en uso" en cada uno. De esa forma, liberar el número para su reutilización es una simple actualización para establecer "inuse=false".

También hace que encontrar el valor más bajo disponible sea sencillo

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

Hacer eso con los bloqueos/transacciones apropiados evitaría que dos o más solicitudes obtengan la misma ID, y dado que es una tabla pequeña, hacer un bloqueo de tabla global no afectaría significativamente el rendimiento.

De lo contrario, estaría atascado hurgando en la tabla de usuarios, tratando de encontrar el primer "espacio" en la secuencia numérica.