Как правильно объявить обработчики

Я пытаюсь добавить хранимую процедуру в схему MySQL.
Я получаю ошибку ERROR: Error 1193: Unknown system variable 'inner_done',
Вот код
Я должен отметить, что не имеет значения, какой обработчик объявлен последним. Это имя будет ошибочным, в то время как первое объявленное как-то нормально. Я даже пытался поиграть с возможностью объявить обработчик, например, создать новый BEGIN-END блокировать, но ошибка все равно заставляет меня, случайным образом выбирая, какой обработчик показывать как "неизвестный"

1 ответ

Решение

Как прокомментировал @RyanVincent, ошибка описывает inner_done не было объявлено

DECLARE done, inner_done BOOLEAN DEFAULT FALSE;

И заверните свой внутренний цикл в BEGIN - END блок.

Редактировать: оператор объявления объявления только определяет обработчик, поэтому перед этим требуется оператор объявления для переменной, которая меняет свое значение как условие.

DECLARE inner_done BOOLEAN DEFAULT FALSE;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET inner_done = TRUE;
Другие вопросы по тегам