在mysql存储过程中,声明一个变量可以使用declare vi_num(变量名) int(数据类型) 的方式。
还可以直接使用@变量名的方式,直接使用一个变量。
请看以下存储过程:
drop PROCEDURE if EXISTS pro2;
CREATE PROCEDURE pro2()
BEGIN
DECLARE d INT;
set @d=3;
SELECT MAX(saleno) INTO d from tsalsale;
SET @dd=0;
SELECT MAX(saleno) INTO @dd FROM tsalsale;
set @d=@d+1;
END;
call pro2();
select @dd;
select @d;
------------------------------------其中,表tsalsale中saleno最大值位10000,
执行两个查询后,结果分别为
10001,
4,
这就说明d和@d是两个不同的变量,d是一个局部变量(在外部执行select d会报错),而@d是一个全局的变量,因此可以执行select @d。