exit存储过程

0lvr5msh  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(308)
CREATE OR REPLACE PROCEDURE <PROC_NAME>
    BEGIN
        CALL PROC1;
        CALL PROC2;
        CALL PROC3;
    END;

在上述3个调用中,我为sqlexception添加了declare exit处理程序 CALL PROC_ERROR('Proc_Name'); 现在假设proc2中有一个sqlexception,控件转到proc\u error,我在那里执行rollback语句。在执行call proc\u error之后,控件仍然继续,并执行不应该发生的proc3过程。理想情况下,我希望在回滚完成后立即结束执行。

ryhaxcpt

ryhaxcpt1#

在异常处理程序中,在rollback语句之后,需要引发另一个异常。您可以通过使用resignal语句来实现这一点。详情请参见:http://guyharrison.squarespace.com/blog/2009/7/13/signal-and-resignal-in-mysql-54-and-60.html 因为将不处理重新签名的异常,所以回滚完成后执行将立即结束。

相关问题