LEAVE
Синтаксис
LEAVE label
Это оператор используется для выхода из блока управления потоком, имеющего заданный метку. Метка должна находиться в той же программе, а не в вызывающей процедуре. LEAVE может использоваться внутри блоков BEGIN ... END или циклов (LOOP, REPEAT, WHILE). В хранимых процедурах, триггерах и событиях LEAVE может относиться к самому внешнему блоку BEGIN ... END; в этом случае программа завершит выполнение процедуры. В хранимых функциях вместо LEAVE можно использовать RETURN.
Обратите внимание, что LEAVE нельзя использовать для выхода из блока DECLARE HANDLER.
Если вы попытаетесь использовать LEAVE с несуществующей меткой или с блоком HANDLER, будет выведено следующее сообщение об ошибке:
ERROR 1308 (42000): LEAVE with no matching label: <label_name>
Следующий пример использует LEAVE для выхода из процедуры, если условие истинно:
CREATE PROCEDURE proc(IN p TINYINT)
CONTAINS SQL
`whole_proc`:
BEGIN
SELECT 1;
IF p < 1 THEN
LEAVE `whole_proc`;
END IF;
SELECT 2;
END;
CALL proc(0);
+---+
| 1 |
+---+
| 1 |
+---+
См. также
- ITERATE - Повторяет выполнение цикла
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/leave/