【发布时间】:2021-08-05 21:51:59
【问题描述】:
在下面的代码中,有一个生成随机字符串的函数,以及一个用于将随机字符串插入到名为Users 的表中的过程。我已经成功创建了该函数,并且它可以正常工作,但是当我尝试创建该过程时,它在"SET @str = SELECT randstring(8);" 行返回语法错误我想我试图以错误的方式调用我的函数。我是数据库新手,请多多包涵。
DELIMITER $$
CREATE FUNCTION `Randstring`(LENGTH SMALLINT(3)) RETURNS VARCHAR(100) CHARSET utf8
BEGIN
SET @returnStr='';
SET @allowedChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
SET @i = 0;
WHILE (@i < LENGTH) DO
SET @returnStr = CONCAT(@returnStr, SUBSTRING(@allowedChars, FLOOR(RAND() * LENGTH(@allowedChars) + 1), 1));
SET @i = @i + 1;
END WHILE;
RETURN @returnStr;
END
DELIMITER $$
CREATE PROCEDURE insertdata()
BEGIN
SET @str='';
DECLARE i INT DEFAULT 0;
WHILE i <= 1000 DO
SET @str = SELECT randstring(8);
INSERT INTO Users (user_name)
VALUES(@str);
SET i = i + 1;
END WHILE;
END $$
DELIMITER ;
【问题讨论】:
标签: mysql sql stored-procedures stored-functions