13.6.2 레이블 구문
[begin_label
:] BEGIN [statement_list
] END [end_label
] [begin_label
:] LOOPstatement_list
END LOOP [end_label
] [begin_label
:] REPEATstatement_list
UNTILsearch_condition
END REPEAT [end_label
] [begin_label
:] WHILEsearch_condition
DOstatement_list
END WHILE [end_label
]
BEGIN ... END
블록 및 LOOP
, REPEAT
및 WHILE
문에 레이블이 허용됩니다. 이러한 문에 사용되는 레이블은 다음 규칙을 따릅니다.
begin_label
뒤에 콜론을 지정해야합니다.begin_label
은end_label
없이 지정할 수 있습니다.end_label
가 존재하는 경우, 그것은begin_label
와 동일해야합니다.end_label
은begin_label
없이 지정할 수 없습니다.같은 중첩 수준에있는 라벨은 다르게해야합니다.
레이블은 최대 16 자까지 지정할 수 있습니다.
레이블이 붙은 구조 구문에서 라벨을 참조하려면 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 구문" 을 참조하십시오.