MySQL 存储过程 - 使用变量

MySQL 存储过程变量概述

存储过程的目的是实现相对复杂的数据操作逻辑,那么变量是必不可少的。

声明变量

语法 :

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 达到时它将超出范围。

您可以在不同的范围内声明两个或多个具有相同名称的变量,因为变量仅在其自己的范围内有效。但是,在不同的范围内声明具有相同名称的变量并不是一种好的编程习惯。

名称以@符号开头的变量是会话变量。会话结束前可以访问它。