今天开发中遇到一个这样的场景,公司库中的每一个公司都需要增加一个唯一标识,这标识都是随机生成的,这时候去一个个添加显然是不科学的。

mysql函数

创建一个mysql函数就可以轻松的解决上面的问题

代码

set global log_bin_trust_function_creators = 1;
DROP FUNCTION IF EXISTS rand_string;
DELIMITER //
CREATE FUNCTION rand_string(n INT)
RETURNS VARCHAR(255)
BEGIN
        DECLARE chars_str varchar(100) DEFAULT 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        DECLARE return_str varchar(255) DEFAULT '';
        DECLARE i INT DEFAULT 0;
        WHILE i < n DO
                SET return_str = concat(return_str,substring(chars_str , FLOOR(1 + RAND()*62 ),1));
                SET i = i +1;
        END WHILE;
        RETURN return_str;
END //
delimiter ;

使用:

update table set a=rand_string(10) //数字代表随机字符串的长度