我似乎找不到任何关于如何捕获和重新抛出在过程中可能发生的错误或警告的信息。
我想要的是以下语法:
create procedure myProcedure()
begin
declare exit handler for ANYTHING_WRONG_THAT_CAN_BE_CAUGHT_WARNINGS_INCLUDED
begin
rollback;
RE_THROW THE_THING_THAT_WAS_CAUGHT;
end;
start transaction;
-- do some stuff
commit;
end; //
原因是我想在出现错误或警告时强制回滚,但要让客户端决定如何处理特定的错误。
全部大写的区域是我不知道应该放什么的地方。
感谢任何帮助!
编辑 -------
我后来了解到无法实现我所要求的 :'(。
相反,我对任何出现问题的情况都使用单个错误,并使用以下代码:
declare exit handler for sqlwarning, sqlexception begin
rollback;
call error();
end;
(error()函数不存在)