MySQL 存储过程和存储函数 的定义条件和处理程序

#三。定义条件和处理程序

#mysql 存储函数和过程可以将错误 变成我们想要的处理结果分2步骤

#1.定义错误条件 语法:DECLARE 条件名字 CONDITION for 错误编码
#2. 定义错误执行程序: DECLARE 类型(EXIT,CONTINUE)HANDLER for 条件名字 set @info='定义的含义';

CREATE TABLE contest(s1 int,PRIMARY KEY(s1));

CREATE PROCEDURE myprocedure2()
BEGIN
DECLARE myfirstcon CONDITION for 1062;
DECLARE CONTINUE HANDLER for myfirstcon set @info='主键冲突';
INSERT INTO contest VALUES(1);
INSERT INTO contest VALUES(1);
set @info='主键冲突1';
end;

call myprocedure2();
SELECT @info
# @info为用户变量

#备注:

-- 1. 局部变量:局部变量一般用在sql语句块中,比如存储过程的begin/end。
--
--   2. 用户变量:用户变量的作用域要比局部变量要广。用户变量可以作用于当前整个连接,但是当当前连接断开后,其所定义的用户变量都会消失。
--
--   3. 会话变量:服务器为每个连接的客户端维护一系列会话变量。
--
--   4. 全局变量:全局变量影响服务器整体操作。当服务器启动时,它将所有全局变量初始化为默认值