В этом учебном пособии вы узнаете, как настроить обработчик для условия NOT FOUND для курсора в MariaDB с синтаксисом и примерами.
Описание
Если вы попытаетесь извлечь данные из курсора и строк не будет, MariaDB выдаст ошибку NO DATA. Вы можете настроить обработчик для условия NOT FOUND, чтобы ваша хранимая программа не завершилась с ошибкой.
Синтаксис
Синтаксис установки обработчика для условия NOT FOUND для курсора в MariaDB:
Параметры или аргументы
- set_condition
- Условие, которое нужно установить, когда курсор встречает условие NOT FOUND.
Пример
Давайте посмотрим, как настроить обработчик для условия NOT FOUND для курсора в MariaDB.
1 |
DECLARE done INT DEFAULT FALSE; |
Далее нам нужно объявить курсор.
1 2 3 4 |
DECLARE c1 CURSOR FOR SELECT SUM(file_size) FROM pages WHERE site_name = name_in; |
Наконец, нам нужно объявить обработчик для условия NOT FOUND для курсора.
1 |
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; |
Ниже приведена функция, которая демонстрирует, как собрать все эти компоненты вместе, чтобы настроить обработчик для условия NOT FOUND для курсора в MariaDB, чтобы ваша хранимая программа не завершилась с ошибкой
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
DELIMITER // CREATE FUNCTION FindSize ( name_in VARCHAR(50) ) RETURNS INT READS SQL DATA BEGIN DECLARE done INT DEFAULT FALSE; DECLARE TotalSize INT DEFAULT 0; DECLARE c1 CURSOR FOR SELECT SUM(file_size) FROM pages WHERE site_name = name_in; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN c1; FETCH c1 INTO TotalSize; CLOSE c1; RETURN TotalSize; END; // DELIMITER ; |