Answer the question
In order to leave comments, you need to log in
How to generate a random number (from 0 to 999999) which is not in the database?
It is required to generate random numbers that are not in the database. From 0 to 999999. Currently using table A with data (where IDs are not repeated and are random and non-sequential) and table B with a list of IDs (from 0 to 999999). I subtract table A from B and get a random row. This method is not very convenient. table B takes up a lot of space. Are there alternative methods (algorithms) for implementing this procedure?
Answer the question
In order to leave comments, you need to log in
Возможно Вам подойдет алгоритмический метод. Шифруйте любым криптографическим алгоритмом с выходным пространством [1..999999] на фиксированном ключе числа 1, 2, 3, ... .
Пока ключ фиксирован в силу биективности алгоритма Вы будете получать уникальные ID
https://habrahabr.ru/company/virgilsecurity/blog/3...
Как раз сегодня опубликовали
Например генерация случайного числа и проверка его наличия в базе.
Если строка со сгенерированным ID найдена - повторить генерацию.
В БД построить индекс по ID (если ещё нет), в цикле пока ID не уникален генерировать его, проверка уникальности по селекту в БД. Имхо, иначе это не реализовать, нюансы только в способе проверки и в способе генерации.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question