我们如何在存储过程中编写将SQLSTATE用于默认MySQL错误并退出执行的MySQL处理程序?

我们知道,每当MySQL存储过程中发生异常时,通过抛出适当的错误消息来处理它是非常重要的,因为如果我们不处理该异常,则有可能使存储过程中具有该特定异常的应用程序失败。MySQL提供了一个处理程序,该处理程序使用SQLSTATE来处理默认的MySQL错误并退出执行。为了说明这一点,我们使用下面的示例,在该示例中,我们尝试在主键列中插入重复的值。

mysql> Delimiter //

mysql> Create Procedure Insert_Studentdetails4(S_Studentid INT, S_StudentName Varchar(20), S_Address Varchar(20),OUT got_error INT)

   -> BEGIN

   -> DECLARE EXIT HANDLER FOR 1062 SET got_error=1;

   -> INSERT INTO Student_detail

   -> (Studentid, StudentName, Address)

   -> Values(S_Studentid,S_StudentName,S_Address);

   -> Select * from Student_detail;

   -> END //

现在,如果我们尝试添加列'studentid'的任何重复值,则它将退出执行,它没有给出在过程'select * from student_detail'中编写的查询结果集,并且仅给出默认的MySQL错误消息1062关于输入重复值,并将变量got_error的值设置为1。

mysql> Delimiter ;

mysql> CALL Insert_Studentdetails4(104,'Ram','Chandigarh',@got_error);

mysql> Select @got_error;

+------------+

| @got_error |

+------------+

|          1 |

+------------+

1 row in set (0.00 sec)

以上是 我们如何在存储过程中编写将SQLSTATE用于默认MySQL错误并退出执行的MySQL处理程序? 的全部内容, 来源链接: utcz.com/z/356933.html

回到顶部