Ich kann nirgendwo finden, wie man Fehler oder Warnungen, die in einer Prozedur auftreten können, fangen und erneut werfen.Wie alle Fehler in MySQL zu fangen und erneut zu werfen
Was ich will, ist die Syntax des zu folgenden Aktionen:
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; //
Der Grund dafür ist, dass ich ein Rollback auf einem Fehler oder eine Warnung zwingen will, aber es an den Client überlassen, zu entscheiden, was zu tun der spezifische Fehler.
Die All-Cap-Bereiche sind die Bereiche, in denen ich nicht weiß, was ich setzen soll.
Danke für jede Hilfe!
bearbeitet -------
Ich habe da gelernt, dass es nicht möglich ist, zu tun, was ich gefragt habe. "(
Stattdessen ich für alles, was einen einzigen Fehler, die schief geht und den folgenden Code verwendet:
declare exit handler for sqlwarning, sqlexception begin
rollback;
call error();
end;
(Fehler() nicht existiert)
Diese Frage würde eine teilweise Lösung bieten: http://stackoverflow.com/questions/18858567/mysql-exception-handler-access-excep Behandlung wird behandelt – djechlin
warum 'teilweise'? was fehlt? – rsanchez