在SQL语句中生成唯一的CHAR(8)随机值



我有这个表:
-id : primary key
-code : CHAR(8) unique

在ANSI SQL(或MySQL)中,是否有一种方法可以在单个SQL语句中为任意数量的行生成唯一的数字代码可以基于自动数字id)?(假设100)

我已经在PHP的循环中完成了这项工作,但不知道是否可以在纯SQL中完成。

要匹配当前要求:

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 )

您可以使用以下代码

select substr(UUID(), 1, 8)

最新更新