mysql 生成纯数字uuid的函数
时间: 2024-05-23 21:14:30 浏览: 177
MySQL中没有直接生成纯数字UUID的函数。但是可以通过以下方法实现:
方法一:利用UUID()函数生成一个含有字母和数字的UUID,然后通过替换函数REPLACE()把中间的短横线去掉,得到纯数字的UUID。
例如:
SELECT REPLACE(UUID(), '-', '');
方法二:自己写一个存储函数来生成纯数字UUID。以下是一个实现的例子:
DELIMITER $$
CREATE FUNCTION pure_uuid()
RETURNS CHAR(32)
BEGIN
DECLARE chars CHAR(36);
DECLARE digits CHAR(10);
DECLARE i INT DEFAULT 0;
DECLARE uuid CHAR(32);
SET chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
SET digits = '0123456789';
REPEAT
SET i = i + 1;
IF SUBSTRING(chars, i, 1) NOT IN ('-', '4', '5', '6') THEN
SET uuid = CONCAT(uuid, SUBSTRING(chars, i, 1));
ELSEIF SUBSTRING(chars, i, 1) = '4' THEN
SET uuid = CONCAT(uuid, MID(digits, FLOOR(RAND() * 10) + 1, 1));
ELSE
SET uuid = CONCAT(uuid, MID(digits, FLOOR(RAND() * 5) * 2 + 1, 1));
END IF;
UNTIL i = 36 END REPEAT;
RETURN uuid;
END$$
DELIMITER ;
使用方法:
SELECT pure_uuid();
阅读全文