Обработка ошибок вместе с откатом и фиксацией с сообщением об ошибке в MySQL - PullRequest
1 голос
/ 06 мая 2019

У меня есть хранимая процедура, в которой есть обработчики с флагом для отката, как мне получить сообщение об ошибке от обработчика.

Я объявил обработчики для различных исключений вместе с флагом для отката, как показано ниже.

...
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, но как получить конкретное сообщение?

...