Non riesco a trovare da nessuna parte come rilevare e ri-lanciare eventuali errori o avvisi che possono verificarsi in una procedura.Come catturare e ri-lanciare tutti gli errori in MySQL
quello che voglio è la sintassi per effettuare le seguenti operazioni:
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; //
Il motivo è che voglio per forza un rollback in caso di errore o di avvertimento, ma lasciarlo fino al cliente di decidere cosa fare con l'errore specifico.
Le aree all-cap sono le parti in cui non so cosa mettere.
Grazie per qualsiasi aiuto!
Modifica -------
Da allora ho imparato che non è possibile fare ciò che ho chiesto:. '(
Invece ho un solo errore per tutto ciò che va male e utilizzato il seguente codice:
declare exit handler for sqlwarning, sqlexception begin
rollback;
call error();
end;
(errore() non esiste)
Questa domanda fornirebbe una soluzione parziale: http://stackoverflow.com/questions/18858567/mysql-exception-handler-access-excep gestione-essere – djechlin
perché 'parziale'? cosa manca? – rsanchez