DELIMITER $
CREATE FUNCTION rand_str2(len INT)
RETURNS VARCHAR(20)
BEGIN
-- 声明一个变量用于保存要返回的字符串
DECLARE return_str VARCHAR(20) DEFAULT '';
-- 声明一个用于循环生成的临时变量
DECLARE i INT DEFAULT 0;
-- 声明一个变量,用于存存储所有字符串
DECLARE chars_str VARCHAR(62) DEFAULT 'qwertyuioplkjhgfdsazxcvbnmMNBVCXZASDFGHJKLPOIUYTREWQ1234567890';
-- 循环生成
WHILE i<len DO
-- 重新给return_Str设置值,让它的值,在原有的基础上拼接一个随机字符
SET return_str=CONCAT(return_str,SUBSTRING(chars_str,FLOOR(RAND()*62+1),1));
-- 让i自增
SET i = i+1;
END WHILE;
RETURN return_str;
END$
DELIMITER ;
SELECT rand_str2(10);
-- 创建存储过程,用于向tab_user表中插入1000000条数据
DELIMITER $
CREATE PROCEDURE batch_insert2()
BEGIN
-- 定义一个用于循环的临时变量
DECLARE i INT DEFAULT 1;
-- 手动开启事务
START TRANSACTION;
-- 循环1000000次
WHILE i <= 1000000 DO
-- 向tab_user插入数据
INSERT INTO tab_user VALUES(NULL,CONCAT('张三',i),rand_str2(10));
-- 临时变量加1
SET i = i+1;
END WHILE;
-- 手动提交事务
COMMIT;
END$
DELIMITER ;
-- 调用存储过程
CALL batch_insert2();
或者 用自带函数uuid()