Mysql储存过程4:mysql变量设置

默认全局变量是两个@@开头, 可用show variables查看所有默认变量:
@@user

#declare定义变量只能用在储存过程中
#declare 变量名 数据类型 可选类型
declare num intdeclare age int defalut 100;


#定义全局变量, 可以用 set声明:
#@变量名
#有两种写法, @name := value / @name = value
set @age=18;
set @age:=18;
select @name:=user();
select @name=user();

mysql> select @a=password from mysql.user$
+-------------+
| @a=password |
+-------------+
|           1 |
|           1 |
|           1 |
+-------------+
3 rows in set (0.00 sec)
mysql> select @a:=password from mysql.user$
+-------------------------------------------+
| @a:=password                              |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+


#:==赋值时区别从上面可以看到
#:=显示结果, = 不会显示结果
#其实用:=/= 赋值都一样

 注意这跟储存过程中定义有点不一样:

create procedure cc1111()
    begin
      declare gan char;
      set gan = user();
      select gan;
    end$

储存过程中定义declare不用加@

储存过程中set也不用加@

储存过程中赋值也可用 := 或 =

原文地址:https://www.cnblogs.com/perl6/p/7114692.html