La sentencia LOOP procesa una secuencia de sentencias de forma repetida e incondicional.
Asegúrese de que la lógica del programa proporcione algún medio de finalizar el bucle. Puede utilizar las sentencias LEAVE o RETURN.
Si está presente, Etiqueta proporciona un nombre a la sentencia. Esto no tiene efecto alguno en el comportamiento de la sentencia LOOP, pero permite que las sentencias incluyan sentencias ITERATE y LEAVE u otras sentencias con etiqueta que, a su vez, incluyen ITERATE y LEAVE. La segunda Etiqueta sólo puede aparecer si existe una primera Etiqueta y, de ser así, ambas deben ser idénticas.
Dos o más sentencias con etiqueta al mismo nivel pueden tener la misma Etiqueta pero esto anula, en parte, la ventaja de la segunda Etiqueta. La ventaja es que ello hace que cada END coincida, de forma exacta, con su LOOP. No obstante, una sentencia con etiqueta dentro de sentencias no puede tener la misma etiqueta porque esto hace que el comportamiento de las sentencias ITERATE y LEAVE sea ambiguo.
La sentencia LOOP resulta útil cuando la lógica necesaria dicta que sólo se sale de un bucle parcialmente. En estos casos, se debe a que resulta innecesario y una pérdida de tiempo comprobar una condición de bucle que se produce en sentencias REPEAT o WHILE.
DECLARE i INTEGER; SET i = 1; X : LOOP ... IF i >= 4 THEN LEAVE X; END IF; SET i = i + 1; END LOOP X;