генерирование уникальных случайных значений CHAR (8) в операторе SQL - PullRequest
3 голосов
/ 07 февраля 2012

У меня есть эта таблица:
-id : primary key<br> -code : CHAR(8) unique

Есть ли способ в ANSI SQL (или MySQL) генерировать уникальный числовой код ( может быть основан на автонумерном id ) в одном Оператор SQL для любого количества строк? (скажем, 100)

Я уже делаю это в цикле в PHP, но интересно, можно ли это сделать в чистом SQL.

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Для соответствия текущим требованиям:

SELECT floor(rand() * 90000000) + 10000000; # Will create an eight-digit random number
INSERT INTO table (code) VALUES (floor(rand() * 90000000) + 10000000);
UPDATE table SET code = floor(rand() * 90000000) + 10000000;

SELECT SUBSTRING( MD5( RAND( ) ), 25 )

В качестве альтернативы на основе автоматического приращения:

SELECT SUBSTRING( MD5(id), 25 ) FROM table

Или обновить его:

UPDATE table SET code = SUBSTRING( MD5(id), 25 )
1 голос
/ 07 февраля 2012

Вы можете использовать следующий код

select substr(UUID(), 1, 8)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...