首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建中的mysql存储过程错误

问创建中的mysql存储过程错误
EN

Stack Overflow用户
提问于 2013-12-23 15:25:56
回答 3查看 240关注 0票数 0

我是学习存储procedure.Now的新手,我正在尝试创建一个过程,它将生成一个随机数并将其存储在一个变量中,然后将该值插入另一个表中。

代码语言:javascript
复制
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上运行这个程序时,它就会产生这个错误。

代码语言:javascript
复制
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感谢你的帮助

请帮我解决这个问题

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-24 10:38:30

您只需将declare替换为DECLARE,并且在编写SQL命令时始终尝试使用大写字母。

票数 0
EN

Stack Overflow用户

发布于 2013-12-23 15:38:54

试试下面的代码。对我来说很管用

代码语言:javascript
复制
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。

代码语言:javascript
复制
https://code.google.com/p/sqlyog/downloads/list

使用可视化工具创建表和存储过程

票数 2
EN

Stack Overflow用户

发布于 2013-12-23 15:30:48

你写了“宣告”错误。

代码语言:javascript
复制
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);
END
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20746453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档