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

generación de números únicos mysql

Si bien parece algo incómodo, esto es lo que se puede hacer para lograr el objetivo:

SELECT FLOOR(10000 + RAND() * 89999) AS random_number
FROM table
WHERE random_number NOT IN (SELECT unique_id FROM table)
LIMIT 1

En pocas palabras, genera N números aleatorios, donde N es el recuento de filas de la tabla, filtra las que ya están presentes en la tabla y limita el conjunto restante a uno.

Podría ser algo lento en mesas grandes. Para acelerar las cosas, puede crear una vista a partir de estos identificadores únicos y usarla en lugar de una declaración de selección anidada.

EDITAR:comillas eliminadas