MySQL 8.4 版本注意事項
[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 ... END
區塊以及 LOOP
、REPEAT
和 WHILE
陳述式。這些陳述式使用標籤須遵循以下規則:
begin_label
後面必須接一個冒號。可以給定
begin_label
而不給定end_label
。如果存在end_label
,則它必須與begin_label
相同。不能在沒有
begin_label
的情況下給定end_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;
區塊標籤的範圍不包含在區塊中宣告的處理常式程式碼。詳情請參閱第 15.6.7.2 節「DECLARE ... HANDLER 陳述式」。