プロシージャで発生する可能性のあるエラーや警告をキャッチして再スローする方法がどこにも見つからないようです。
私が欲しいのは、次のことを行う構文です。
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() は存在しません)