MySQL 一个简单的存储过程,大致意思如下,哪里错了呢,对这语法一窍不懂
CREATEprocedurehelloworld(in'a1'int,in'a2'int,out'sum'int,out'sub'int)beginsetsum=a1+...
CREATE procedure helloworld(in 'a1' int,in 'a2' int,out 'sum' int,out 'sub' int)
begin
set sum = a1 + a2;
set sub = a1 - a2
end; 展开
begin
set sum = a1 + a2;
set sub = a1 - a2
end; 展开
2个回答
2015-07-02
展开全部
解决方案:
delimiter // CREATE PROCEDURE updateuserlogonstate( IN p_userid INT UNSIGNED,INOUT p_sessionid VARCHAR(50),IN p_clienttype VARCHAR(20)) BEGIN declare tmp_sessionid varchar(50) ; SELECT sessionid FROM user_logon_state WHERE id =p_userid and clienttype=p_clienttype into tmp_sessionid; IF tmp_sessionid is NOT NULL THEN SET p_sessionid = tmp_sessionid; UPDATE user_logon_state SET sessionid=(select p_sessionid from user_logon_state WHERE id=p_userid and clienttype=p_clienttype); ELSE INSERT INTO user_logon_state (id,sessionid,clienttype)values(p_userid,p_sessionid,p_clienttype); END IF; END; // 帮你改了,测试可以执行了!
delimiter // CREATE PROCEDURE updateuserlogonstate( IN p_userid INT UNSIGNED,INOUT p_sessionid VARCHAR(50),IN p_clienttype VARCHAR(20)) BEGIN declare tmp_sessionid varchar(50) ; SELECT sessionid FROM user_logon_state WHERE id =p_userid and clienttype=p_clienttype into tmp_sessionid; IF tmp_sessionid is NOT NULL THEN SET p_sessionid = tmp_sessionid; UPDATE user_logon_state SET sessionid=(select p_sessionid from user_logon_state WHERE id=p_userid and clienttype=p_clienttype); ELSE INSERT INTO user_logon_state (id,sessionid,clienttype)values(p_userid,p_sessionid,p_clienttype); END IF; END; // 帮你改了,测试可以执行了!
追问
我去,你看我写的补充了吗!一点都不搭嘎。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CREATE procedure helloworld(in 'a1' int,in 'a2' int,out 'sum' int,out 'sub' int)
你这个是新建一个表格吧?
那么语句应该是create table TABLE
你的表格里面根本就没有数据,set 为 0
数据库肯定报错吧?
你这个是新建一个表格吧?
那么语句应该是create table TABLE
你的表格里面根本就没有数据,set 为 0
数据库肯定报错吧?
追问
我想创建的是存储过程
追答
第一 你的存储过程中,in 和 out 连个关键字的含义是否知道。
IN参数只用来向过程传递信息,为默认值。
OUT参数只用来从过程传回信息。
你要确定这个是否是空值,
第二 SET是一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。指定包括多个SET成员的SET列值时各成员之间用逗号(‘,’)间隔开。这样SET成员值本身不能包含逗号。
第三还要也基础的语法错误
第四你的这个语句根本就么有显示,所以看不见结果。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询