Как правильно объявить обработчики
Я пытаюсь добавить хранимую процедуру в схему 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;