SQLEXCEPTION处理程序错误使用存储过程

时间:2016-10-21 11:24:05

标签: mysql

是否可以处理存储过程不存在和错误数量的参数等错误?

正如我所见,像bellow这样的处理程序没有发现这样的错误:(

CREATE PROCEDURE _tmp_proc(
)
BEGIN
    DECLARE EXIT HANDLER FOR SQLEXCEPTION
    BEGIN
        IF IFNULL(@LOG_LEVEL, 1) < 2 THEN
            ROLLBACK;
        END IF;

        SELECT 'An error has occurred';
        RESIGNAL;
    END;

    CALL inexisted_proc();
END

1 个答案:

答案 0 :(得分:1)

  

是否可以处理存储过程不存在等错误   和错误的参数数量?

是的,你可以,但它应该在呼叫站点处理而不是在程序中处理。对于调用站点,我的意思是您调用存储过程的应用程序端。因此,如果您使用PHP,则使用错误处理机制try .. catch构造,并在catch块中记录异常或根据需要执行。