Задать вопрос
@FeNiX1996l

Как сделать рандомное id в mysql?

Здравствуйте. Как сделать id в БД рандомным?
Записи добавляются с id, которое идет последовательно
1
2
3
...

Я хочу сделать так, что бы id было рандомным набор чисел в промежутке от 1 000 000 до 99 999 999

Т.е. я добавил онду запись и у нее id 2 478 190
Добавил вторую запись и у нее id 56 295 999

Как думаете...такое можно реализовать?
  • Вопрос задан
  • 2893 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
ivinnic
@ivinnic
Full-Stack - подустал
Может быть, можно вообще без этого обойтись, подумай.
Например сделать привязку по другому полу, что бы id служил роли ID...
Или сделать скрипт которые перезапишет id везде :))
Ответ написан
Комментировать
function_rand
как обеспечить уникальность не представляю

если просто нужны уникальные значения, то лучше function_uuid
маловероятно что они совпадут
Ответ написан
kawabanga
@kawabanga
Реализовать можно, но не очень эффективно будет мне кажется.

Добавлять можно с помощью php
проверять существование записи через rand (1000000,99999999); по первичному ключу, если записи нет, до добавлять запись. В принципе, если записей будет немного, то проблем может и не быть. Но если записей более 90 процентов, то шанс того, что ид не занят будет составлять около 10%, что значит, нужно будет сделать 9 запросов до первого попавшегося ид.
+ если это записи новостей, или тому подобное, то как вы сможете объяснить, например, вы удалили запись, а на ее место записалась новая, и под тем же ид будет совершенно иная запись. Не уверен, что это удобно.

Можно написать функцию с циклом чисто на sql.
Ответ написан
MintTea
@MintTea
Используйте uuid
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы