참고
MySQL Documentation 13.6.2 Statement Labels
설명
- BEGIN ... END 블록의 고유한 이름으로 사용
syntax
[begin_label:] BEGIN
[statement_list]
END [end_label]
[begin_label:] LOOP
statement_list
END LOOP [end_label]
[begin_label:] REPEAT
statement_list
UNTIL search_condition
END REPEAT [end_label]
[begin_label:] WHILE search_condition DO
statement_list
END WHILE [end_label]
begin_label
- begin_label 뒤에는 반드시 콜론(:)이 붙어야 한다.
- 같은 레벨에서는 레이블은 고유해야 한다.
- 레이블은 최대 16자까지이다.
end_label
- begin_label과 동일해야 한다.
- end_label은 생략 될 수 있다.
label 참조
- 레이블로 표시된 구조내에서 레이블을 참조하기 위해서는
ITERATE
또는LEAVE
를 사용 - ITERATE: 오직 loop constructs(LOOP, REPEAT, WHILE) 안에서만 사용 가능, 해당 loop를 다시 시작하는 것
- LEAVE: BEGIN ... END 또는 loop constructs (LOOP, REPEAT, WHILE) 안에서 사용 가능, 해당 블록을 종료시키는 것
- 루프를 반복하거나 종료할 때 다음과 같이 사용
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;