变量作用域
变量作用域:变量能够使用的区域范围
局部作用域
使用declare关键字声明(在结构体内:函数/存储过程/触发器),而且只能在结构体内部使用
1、declare关键字声明的变量没有任何符号修饰,就是普通字符串。如果在外部访问该变量,系统会自动认为是字段
会话作用域
用户定义的,使用@符号定义的变量,使用set关键字
会话作用域:在当前用户当次连接有效,只要在本连接之中,任何地方都可以使用(可以在结构内部,也可以跨库)
mysql> set @name = 3;
Query OK, 0 rows affected (0.00 sec)
mysql> create function my_fun() returns char(10)
-> return @name;
Query OK, 0 rows affected (0.00 sec)
mysql> select my_fun();
+----------+
| my_fun() |
+----------+
| 3 |
+----------+
1 row in set (0.00 sec)
mysql> set @name = '小三';
Query OK, 0 rows affected, 1 warning (0.00 sec)
-- 为什么显示不了汉字,到现在我还没有找到原因,。。字符编码都改过了还是不行,,,先留着吧。
mysql> select my_fun();
+----------+
| my_fun() |
+----------+