欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

MySQL基础--07---变量

时间:2023-07-31

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

变量系统变量

1.1 系统变量分类1.2 全局和会话1.3 查看系统变量 用户变量

2.1 用户变量分类![在这里插入图片描述](https://img-blog.csdnimg.cn/ffff0d7ccef04ae6835e8b8ba00b6ea7.png)2.2 会话用户变量

会话用户变量:使用"@"开头,作用域为当前会话。 2.3 局部变量

局部变量:只能使用在存储过程和存储函数中的。 2.4 案例2.5 对比会话用户变量与局部变量2.6 补充:MySQL 8.0的新特性—全局变量的持久化

MySQL 8.0版本新增了SET PERSIST 命令 定义条件与处理程序

1 案例分析2 定义条件

定义条件就是给MySQL中的错误码命名 3 定义处理程序

可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序 4 案例解决

举例:


变量

在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。

在 MySQL 数据库中,变量分为系统变量以及用户自定义变量。

系统变量用户自定义变量 系统变量 1.1 系统变量分类



全局系统变量针对于所有会话(连接)有效,但不能跨重启会话系统变量仅针对于当前会话(连接)有效。会话期间,当前会话对某个会话系统变量值的修
改,不会影响其他会话同一个会话系统变量的值。会话1对某个全局系统变量值的修改会导致会话2中同一个全局系统变量值的修改。 1.2 全局和会话

在MySQL中有些系统变量只能是全局的,
例如 max_connections 用于限制服务器的最大连接数;有些系统变量作用域既可以是全局又可以是会话
例如 character_set_client 用于设置客户端的字符集;有些系统变量的作用域只能是当前会话
例如 pseudo_thread_id 用于标记当前会话的 MySQL 连接 ID。 1.3 查看系统变量

查看所有或部分系统变量

举例:

查看指定系统变量

修改系统变量的值


举例:

SELECT @@global.autocommit;SET GLOBAL autocommit=0;SELECT @@session.tx_isolation;SET @@session.tx_isolation='read-uncommitted';SET GLOBAL max_connections = 1000;SELECT @@global.max_connections;

用户变量 2.1 用户变量分类 2.2 会话用户变量
会话用户变量:使用"@"开头,作用域为当前会话。



举例

2.3 局部变量
局部变量:只能使用在存储过程和存储函数中的。




2.4 案例




2.5 对比会话用户变量与局部变量 2.6 补充:MySQL 8.0的新特性—全局变量的持久化
MySQL 8.0版本新增了SET PERSIST 命令


定义条件与处理程序 1 案例分析


调用存储过程:

2 定义条件
定义条件就是给MySQL中的错误码命名



3 定义处理程序
可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序


定义处理程序的几种方式,代码如下:

4 案例解决

在存储过程中,定义处理程序,捕获sqlstate_value值,当遇到MySQL_error_code值为1048时,执行
CONTINUE操作,并且将@proc_value的值设置为-1。


举例:

创建一个名称为“InsertDataWithCondition”的存储过程,代码如下。

在存储过程中,定义处理程序,捕获sqlstate_value值,当遇到sqlstate_value值为23000时,执行EXIT操作,并且将@proc_value的值设置为-1。

调用存储过程:

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。