【发布时间】:2012-10-17 05:52:31
【问题描述】:
我似乎无法在任何地方找到如何捕获和重新抛出过程中可能发生的任何错误或警告。
我想要的是执行以下操作的语法:
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;
(错误()不存在)
【问题讨论】:
-
这个问题将提供部分解决方案:stackoverflow.com/questions/18858567/…
-
为什么是“部分”?缺少什么?
-
感谢您的提问和回答,我在同一个主题上浪费了很多小时,终于找到了您的帖子。欢呼
标签: mysql stored-procedures handler