变量作用域
变量作用域:变量能够使用的区域范围
局部作用域
使用declare关键字声明(在结构体内:函数/存储过程/触发器),而且只能在结构体内部使用。
declare关键字声明的变量没有任何符号修饰,就是普通字符串,如果在外部能够访问该变量,系统会自动认为是字段。
会话作用域
用户定义的:使用@符号定义的变量,使用set关键字。
会话作用域:在当前用户当次连接有效,只要在本连接之中,任何地方都可以使用(可以在结构内部,也可以跨库)
会话变量可以在函数内部使用
会话变量可以跨库
全局作用域
所有的客户端所有的连接都有效,需要使用全局符号来定义
set global 变量名 = 值;
set @@global.变量名 = 值;
通常在SQL编程的时候,不会使用自定义变量来控制全局。一般都是定义会话变量或者在结构中使用局部变量来解决问题。