有时候,我们做做mysql实验的时候想批量创建随机的字符串,一条一条添加肯定很麻烦,所以这里利用mysql存储过程函数来实现这个功能:
DROP PROCEDURE IF EXISTS add_film;
DELIMITER //
CREATE PROCEDURE add_film(IN num INT)
BEGIN
DECLARE filmid INT DEFAULT 0;
DECLARE filmtitle VARCHAR(100) DEFAULT '';
DECLARE des VARCHAR(255) DEFAULT '';
WHILE filmid < num DO
SET filmtitle = SUBSTRING('acvqweyuiolmploiuyqwc',FLOOR(1+21*RAND()));
SET des = SUBSTRING('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',FLOOR(1+62*RAND()));
SET filmid = filmid + 1;
INSERT INTO film_text (film_id,title,description) VALUES (filmid,filmtitle,des);
END WHILE;
END //
DELIMITER ;
说明:
1floor函数:取数值的整数部分
2rand函数:生成0-1的随机数,如0.5
3substring(str,len),在str字符串中截取长度为len的字符串
上面上面存储过程之后,再使用call(100)来调用存储过程实现生成100行的随机字符串
call add_file(100)
上面可以看到,我创建的表的字段有file_id、title和description字段
使用
SHOW PROCEDURE STATUS命令查看上面存储函数的执行状态