我是学习存储procedure.Now的新手,我正在尝试创建一个过程,它将生成一个随机数并将其存储在一个变量中,然后将该值插入另一个表中。
create procedure getRand()
begin
delcare rc varchar(255);
SELECT CHAR(ROUND(65 + FLOOR( RAND() * 57 ))) into rc;
insert into Rand_loader (snum,rnum) values (rc,rc);
end//但是,当我试图在mysql上运行这个程序时,它就会产生这个错误。
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'rc varchar(255);
SELECT CHAR(ROUND(65 + FLOOR( RAND() * 57 ))) into rc;
insert' at line 3我无法理解这个error.Ill感谢你的帮助
请帮我解决这个问题
发布于 2013-12-24 10:38:30
您只需将declare替换为DECLARE,并且在编写SQL命令时始终尝试使用大写字母。
发布于 2013-12-23 15:38:54
试试下面的代码。对我来说很管用
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
PROCEDURE `yourdatabasename`.`getRand`()
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
DECLARE rc VARCHAR(255);
SELECT CHAR(ROUND(65 + FLOOR( RAND() * 57 ))) INTO rc;
INSERT INTO Rand_loader (snum,rnum) VALUES (rc,rc);
END$$
DELIMITER ;您可以从这里下载SQLyog。
https://code.google.com/p/sqlyog/downloads/list使用可视化工具创建表和存储过程
发布于 2013-12-23 15:30:48
你写了“宣告”错误。
CREATE PROCEDURE `getRand`()
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
declare rc varchar(255);
SELECT CHAR(ROUND(65 + FLOOR( RAND() * 57 ))) into rc;
insert into Rand_loader (snum,rnum) values (rc,rc);
ENDhttps://stackoverflow.com/questions/20746453
复制相似问题