存储过程的目的是实现相对复杂的数据操作逻辑,那么变量是必不可少的。
语法 :
DECLARE 变量名称 变量类型(长度) DEFAULT 默认;
例 :
DROP PROCEDURE IF EXISTS test;
DElIMITER $$
CREATE PROCEDURE test()
BEGIN
DECLARE idx INT DEFAULT 0;
set idx = idx + 1;
select idx;
END $$
DElIMITER;
MySQL 允许您使用单个 DECLARE 语句声明两个或多个共享相同数据类型的变量,如下所示:
DECLARE x, y INT DEFAULT 0;
变量有自己的范围来定义其生命周期。如果在存储过程中声明变量,则当END存储过程的语句到达时,它将超出范围。
如果在 BEGIN END 块内声明变量,则在 END 达到时它将超出范围。
您可以在不同的范围内声明两个或多个具有相同名称的变量,因为变量仅在其自己的范围内有效。但是,在不同的范围内声明具有相同名称的变量并不是一种好的编程习惯。
名称以@符号开头的变量是会话变量。会话结束前可以访问它。