带有LEAVE的mysql退出退出调用者过程

时间:2018-01-11 22:34:16

标签: mysql stored-procedures

在我们的mysql设置中,我们有一个运行时间很长的SP(存储过程),运行大约4个小时(进行大量的数据按摩)。该SP逐个调用不同的SP,然后调用其他一些SP。

    SP1 ( main SP)
    -> some long running queries..
    -> calls SP2
       -> SP2 calls SP3 

SP3有此代码。

exitblock:  begin
... some code...

 if .. then
    leave exitblock;
 end if
END;

当我直接调用SP2时,会打开一个游标并为每条记录调用SP3。 SP3具有提前退出逻辑(带有标签exitblock),并且它可以正常工作。

当我致电SP3时,由于它是长时间运行的调用,它会执行所有操作,直到它遇到第一个LEAVE语句并退出SP1,即使它应该退出SP3并将控制权交还给SP2

有什么想法吗?

0 个答案:

没有答案