база данных: генерировать уникальную строку непосредственно в базе данных с помощью запроса и форматирования поля

0

У меня есть поле с такими атрибутами:

name "unique"
type "varchar"
size "15"
index "INDEX"

Я хочу создать поле индекса, которое автоматически генерирует буквенно-цифровые символы. В настоящий момент я вручную вводим произвольно сгенерированный код через: "INSERT INTO table (unique) VALUES (MD5 (RAND()))" У этого метода есть проблема: если случайный код (результат выражения MD5 (RAND())) существуют в базе данных, данные не могут быть добавлены в базу данных. Могу ли я заказать базу данных для создания "уникальной" строки автоматически?

Теги:
database
mysqli
pdo

1 ответ

0

крайне маловероятно, чтобы получить дубликаты:

MD5(uniqid());

но прочитайте предупреждения на странице руководства

Альтернатива - это mysqls собственный UUID()

  • 0
    да, я сказал, прочитайте руководство: -0
  • 0
    php.net говорит: Предупреждение Эта функция пытается создать уникальный идентификатор, но она не гарантирует 100% уникальности возвращаемого значения. Моя настоящая проблема - опасность дублирования идентификатора. Эта функция имеет риск дублирования: я не могу использовать uniqid ().
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню