2011-10-24 36 views
9

¿Cómo puedo obtener el texto de error en el procedimiento almacenado de MySQL cuando se produce SQLEXCEPTION?Obteniendo el mensaje SQLEXCEPTION en los procedimientos de MySQL

necesito algo como esto:

DECLARE EXIT HANDLER FOR SQLEXCEPTION  
BEGIN 
    INSERT INTO my_log (error_message) 
    VALUES (SQLEXCEPTION.message); 
END; 
+0

la versión de MySQL está usando? – Nodlehs

+0

5.1.49 Descubrí que no hace mucho tiempo se agregó la nueva característica GET DIAGNOSTICS, que resuelve mi problema. – shurik2533

+0

Pero se agrega a 5.6.4 ... de todos modos ¡gracias por la respuesta! – miherrma

Respuesta

4
DECLARE EXIT HANDLER FOR SQLEXCEPTION  
BEGIN 

GET DIAGNOSTICS CONDITION 1 
    @p2 = MESSAGE_TEXT; 

    INSERT INTO my_log (error_message) 
    SELECT @p2; 
END; 
+3

https://dev.mysql.com/doc/refman/5.7/en/get-diagnostics.html –

Cuestiones relacionadas