У меня есть хранимая процедура, в которой есть обработчики с флагом для отката, как мне получить сообщение об ошибке от обработчика.
Я объявил обработчики для различных исключений вместе с флагом для отката, как показано ниже.
...
BEGIN
DECLARE `_rollback` BOOL DEFAULT 0;
DECLARE EXIT HANDLER FOR 1051 SET `_rollback` = 1;
DECLARE EXIT HANDLER FOR 1062 SET `_rollback` = 1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION SET `_rollback` = 1;
DECLARE EXIT HANDLER FOR SQLSTATE '23000' SET `_rollback` = 1;
START TRANSACTION;
......
.....
IF `_rollback` THEN
ROLLBACK;
ELSE
COMMIT;
END IF;
Ожидаемый вывод - сообщение об ошибке, основанное на обработчике. Но так как он просто следует этому синтаксису, указанному в здесь
DECLARE action HANDLER FOR оператор condition_value;
Я не могу получить сообщение об ошибке. Один из способов - написать общее сообщение об ошибке после ROLLBACK, но как получить конкретное сообщение?