Обработка ошибок MySQL с сигналом / отставкой
Я хотел бы проверить действительные типы нагрузки. Если тип загрузки, переданный в мою процедуру, недопустим, я хочу выдать сообщение об ошибке через SIGNAL. Я также хочу иметь универсальный обработчик EXIT для любых других непредвиденных ошибок, которые будут откатывать любые изменения. Проблема в том, что универсальный обработчик EXIT имеет приоритет над моим пользовательским СИГНАЛОМ, и все, что я получаю, это "SQLException встретился" Если я не удаляю универсальный обработчик EXIT, в этом случае я получаю «Тип загрузки неверен».
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;