用mysql写存储过程中遇到的问题
今天看视频学习jdbc相关的知识,因为视频用的是oracle,而我用的是mysql,一步步跟下来,在存储过程这里费了很多心思,还好刚刚终于成功了
这里把完成的存储过程贴上:
delimiter ;;
CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(IN `v_a` int,`v_b` int,OUT `v_ret` int,INOUT `v_temp` int)
BEGIN
if(v_a > v_b)then
set v_ret = v_a;
else
set v_ret = v_b;
end if;
set v_temp = v_temp + 1;
END;;
delimiter ;
这里写一些出现过得问题,数据库学的是真的不好:
1.delimiter是用来更改语句结束符号的,防止过程中有;导致的错误
2.最初用mysql的命令框打代码,更改很不方便,东改西改还是错,我就拿Navicat for MySQL先建一个存储过程,再理解其中的要点
CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(IN `v_a` int,`v_b` int,OUT `v_ret` int,INOUT `v_temp` int)
这段就是从上面v来的,意思是创建一个NewProc的存储过程并创建了四个字段。
DEFINER = CURRENT_USER不太理解,百度了,大致使指定用户的意思
3.变量赋值没有拿 set 赋,刚开始百度了一下用的是@,不行,不知道哪里错了,就回来用set过了,@的原因还得以后看。