提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录变量系统变量
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 会话用户变量会话用户变量:使用"@"开头,作用域为当前会话。
举例
局部变量:只能使用在存储过程和存储函数中的。
MySQL 8.0版本新增了SET PERSIST 命令
调用存储过程:
定义条件就是给MySQL中的错误码命名
可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序
定义处理程序的几种方式,代码如下:
在存储过程中,定义处理程序,捕获sqlstate_value值,当遇到MySQL_error_code值为1048时,执行
CONTINUE操作,并且将@proc_value的值设置为-1。
创建一个名称为“InsertDataWithCondition”的存储过程,代码如下。
在存储过程中,定义处理程序,捕获sqlstate_value值,当遇到sqlstate_value值为23000时,执行EXIT操作,并且将@proc_value的值设置为-1。
调用存储过程: