流程控制经典案例
已知表stringcontent
其中字段:
id自增长
content VARCHAR (20)
向该表插入指定个数的随机的字符串
#创建表
DROP TABLE IF EXISTS stringcontent;
CREATE TABLE stringcontent(
id INT PRIMARY KEY AUTO_INCREMENT,
content VARCHAR(20)
);
#创建流程
DELIMITER $
CREATE PROCEDURE test_randomstr(IN insertcount INT)
BEGIN
DECLARE i INT DEFAULT 1;#定义一个循环变量i,表示插入次数
DECLARE str VARCHAR(26) DEFAULT 'abcdefghijklmnopqrstuvwxyz';
DECLARE startindex INT DEFAULT 1;#代表起始索引
DECLARE len INT DEFAULT 1;#代表截取的字符的长度
WHILE i<=insertcount DO
#产生一个随机的整数,代表截取长度,1到(26-startindex+1)
SET len=FLOOR(RAND()*(20-startindex+1)+1);
#产生一个随机整数,代表起始索引,1到26取str里的字符
SET startindex=FLOOR(RAND()*26+1);#floor向下取整
INSERT INTO stringcontent(content) VALUES(SUBSTR(str,startIndex,len));
SET i=i+1;#循环变量更新
END WHILE;
END $
#调用
CALL test_randomstr(10)$