Spec-Zone .ru
спецификации, руководства, описания, API

13.6.2. Синтаксис Метки оператора

[begin_label:] BEGIN    [statement_list]END [end_label][begin_label:] LOOP    statement_listEND LOOP [end_label][begin_label:] REPEAT    statement_listUNTIL search_conditionEND REPEAT [end_label][begin_label:] WHILE search_condition DO    statement_listEND WHILE [end_label]

Для меток разрешают BEGIN ... END блоки и для LOOP, REPEAT, и WHILE операторы. Использование метки для тех операторов следует за этими правилами:

Чтобы обратиться к метке в пределах маркированной конструкции, используйте ITERATE или LEAVE оператор. Следующий пример использует те операторы, чтобы продолжать выполнять итерации или завершать цикл:

CREATE PROCEDURE doiterate(p1 INT)BEGIN  label1: LOOP    SET p1 = p1 + 1;    IF p1 < 10 THEN ITERATE label1; END IF;    LEAVE label1;  END LOOP label1;END;

Контекст блочной метки не включает код для обработчиков, объявленных в пределах блока. Для получения дополнительной информации см. Раздел 13.6.7.2,"DECLARE ... HANDLER Синтаксис".