manejo de errores mysql con señal / renuncia
Me gustaría tener una verificación de los tipos de carga válidos. Si un tipo de carga pasado a mi procedimiento no es válido, quiero enviar un mensaje de error a través de SIGNAL. También quiero tener un controlador EXIT genérico para cualquier otro error inesperado que revierta cualquier cambio. El problema es que el controlador EXIT genérico tiene prioridad sobre mi SEÑAL personalizada y todo lo que obtengo es 'SQLException found'. A menos que elimine el controlador EXIT genérico, en cuyo caso obtengo 'El tipo de carga es incorrecto'.
code:
DECLARE incorrect_load_type CONDITION FOR SQLSTATE '22012';
DECLARE EXIT HANDLER FOR incorrect_load_type
RESIGNAL SET MESSAGE_TEXT = 'Load type is incorrect';
DECLARE EXIT HANDLER FOR SQLEXCEPTION, SQLWARNING
begin
SELECT 'SQLException encountered';
rollback;
end;
IF(v_load_type != 'CORRECT TYPE') THEN
SIGNAL incorrect_load_type;
END IF;