mysql exit with leave退出调用者过程

kdfy810k  于 2021-06-25  发布在  Mysql
关注(0)|答案(0)|浏览(266)

在我们的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 .
你知道吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题