MySQL异常处理预声明条件的使用技巧

栏目:技术文章 发布时间:2026-04-12 09:25
MySQL中NOT FOUND、SQLEXCEPTION、SQLWARNING为预声明异常处理条件,无需额外声明即可直接使用。若尝试手动声明会触发报错,掌握其特性能有效提升数据库操作稳定性与代码简洁性。

Error Handling 异常处理

mysql> CREATE TABLE t2

CREATE TABLE error_log (error_message

CREATE PROCEDURE p22 (parameter1 INT)

CALL p22 (5) //

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE TABLE t4 (s1 int,primary key(s1));//

CREATE TABLE t4 (s1 int,primary key(s1));//

MySQL异常处理预声明条件的使用技巧(图1)

mysql> CALL p23()//

CREATE PROCEDURE p24 ()

CREATE PROCEDURE p24 ()

mysql> CALL p24()//

mysql> CREATE PROCEDURE p9 ()

-> BEGIN

-> DECLARE EXIT HANDLER FOR NOT FOUND BEGIN END;

-> DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN END;

-> DECLARE EXIT HANDLER FOR SQLWARNING BEGIN END;

-> END;//

Query OK, 0 rows affected (0.00 sec)

这里是三个预声明的条件:NOT FOUND (找不到行), SQLEXCEPTION (错误),SQLWARNING (警告或注释)。因为它们是预声明的,因此不需要声明条件就可以使用。不过如果你去做这样的声明:"DECLARE SQLEXCEPTION CONDITION …",你将会得到错误信息提示。