mysql变量的分类_MySQL的四种变量类型

一.全局变量

在系统运行期间动态更改其参数,重启后失效.

SET GLOABL var=XXX;

SET @@global.var=XXX;

以上两种方式等效

查看系统的全局变量

show global variables [like "%"];

二.用户变量

对当前回话有效,回话结束后,变量销毁

SET @var=XXX;

SELECT @var:=uid FROM table where id=10;

使用@作为前缀标识符,set可以使用=或=:赋值,select则只能用:=进行赋值

一个典型的示例:

将积分表中更新后的积分返回,用于其他操作

UPDATE test SET score=@score:=score+1 WHERE id=1;

SELECT @score;

三.会话变量

对当前回话有效,回话结束后,变量销毁

set session var_name = value;

set @@session.var_name = value;

set var_name = value;

以上三种方式等效

会话变量和用户变量的区别在于,除了前缀标识符外,会话变量是系统预先定义的一组变量,你不可能定义一个不存在的用户变量.

set test='test';

[Err] 1193 - Unknown system variable 'test';

也就是会话变量只能被update而不能被insert

查看当前会话的变量

show [session] variables [like "%"];(其中session为默认,可以不用写)

常见的如消除mysql默认的sql_mode模式,改为最为宽松的模式

set sql_mode='';

四.局部变量

DECLEAR var INTEGER DEFAULT 0;

一般定义在BEGIN和END语句块之间,语句块结束即消失.

ps:

begin和end之间用于定义一组sql复合语句;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值