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 ;
select rand_string(32);

经测试,函数创建后与当前数据库绑定,下面语句可以查看函数相关信息。

SHOW FUNCTION STATUS WHERE Db='database_name';

 

发表评论

电子邮件地址不会被公开。

CAPTCHA

*