Метки
Синтаксис
label: <construct> [label]
Метки — это идентификаторы MariaDB, которые могут использоваться для идентификации конструкции BEGIN ... END или цикла. Они имеют максимальную длину 16 символов и могут быть заключены в обратные кавычки (т.е., `).
Метки имеют начальную и конечную части. Начальная часть должна предшествовать той части кода, на которую она ссылается, должна следовать за двоеточием (:) и может быть на той же или на другой строке. Конечная часть необязательна и ничего не добавляет, но может сделать код более читаемым. Если используется, конечная часть должна предшествовать разделителю конструкции (;). Конструкции, идентифицированные меткой, могут быть вложенными. Каждая конструкция может быть идентифицирована только одной меткой.
Метки не обязательно должны быть уникальными в хранимой программе, к которой они относятся. Однако метка для внутреннего цикла не может быть идентичной метке для внешнего цикла. В этом случае будет выдано следующее сообщение об ошибке:
ERROR 1309 (42000): Redefining label <label_name>
Операторы LEAVE и ITERATE могут быть использованы для выхода или повторения части кода, идентифицированной меткой. Они должны находиться в той же хранимой процедуре, триггере или событии, которое содержит целевую метку.
Ниже приведен пример использования простой метки для выхода из цикла LOOP:
CREATE PROCEDURE `test_sp`()
BEGIN
`my_label`:
LOOP
SELECT 'looping';
LEAVE `my_label`;
END LOOP;
SELECT 'out of loop';
END;
Следующая метка используется для выхода из процедуры и имеет конечную часть:
CREATE PROCEDURE `test_sp`()
`my_label`:
BEGIN
IF @var = 1 THEN
LEAVE `my_label`;
END IF;
DO something();
END `my_label`;
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/labels/