Gestion des erreurs de procédure stockée MySQL

Je crois que rien n'est actuellement disponible dans MySQL qui permet d'accéder à la SQLSTATE de la dernière instruction exécutée dans une base de données MySQL procédure stockée. Cela signifie que lorsqu'un générique SQLException est soulevée dans une procédure stockée, il est difficile/impossible de dériver la nature exacte de l'erreur.

Quelqu'un at-il une solution de contournement pour calculer le SQLSTATE d'une erreur dans une base de données MySQL procédure stockée qui ne nécessite pas de déclaration d'un gestionnaire pour chaque SQLSTATE?

Par exemple imaginer que je suis en train de retourner un error_status qui va au-delà du générique de "SQLException est arrivé quelque part dans ce BEGIN....END bloc" dans le texte suivant:

DELIMITER $$

CREATE PROCEDURE `myProcedure`(OUT o_error_status varchar(50))
MY_BLOCK: BEGIN

 DECLARE EXIT handler for 1062 set o_error_status := "Duplicate entry in table";
 DECLARE EXIT handler for 1048 set o_error_status := "Trying to populate a non-null column with null value"; 
-- declare handlers ad nauseum here....

 DECLARE EXIT handler for sqlexception set o_error_status:= "Generic SQLException. You'll just have to figure out the SQLSTATE yourself...." ;

-- Procedure logic that might error to follow here...

END MY_BLOCK$$

Des conseils?

PS je suis sous MySQL 5.1.49

source d'informationauteur Tom Mac