mysql 存储过程异常捕捉
时间: 2023-10-21 11:33:16 浏览: 90
MySQL存储过程的异常处理方法
在MySQL中,可以使用BEGIN…END语句块来定义存储过程,并使用DECLARE语句声明变量。要捕获存储过程中的异常,可以使用以下语法:
DECLARE CONTINUE HANDLER FOR SQLSTATE '异常代码' BEGIN
-- 处理异常的代码
END;
其中,异常代码是指MySQL中定义的异常代码,例如'23000'表示唯一性约束冲突异常。
以下是一个示例存储过程,用于将一条记录插入到名为“mytable”的数据库表中,并捕获唯一性约束冲突异常:
DELIMITER //
CREATE PROCEDURE add_record (
IN id INT,
IN name VARCHAR(50)
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
SELECT 'Error: ' || SQLSTATE;
END;
INSERT INTO mytable (id, name)
VALUES (id, name);
END//
DELIMITER ;
在此示例中,如果插入的记录与表中现有记录的唯一键值冲突,将引发异常,并将错误代码和消息打印到控制台。
注意:在MySQL中,存储过程中的异常处理必须使用CONTINUE HANDLER,而不是EXCEPTION语句块。
阅读全文