Posteriormente a investigar con especialistas en este tema, programadores de varias áreas y profesores hemos dado con la respuesta al problema y la plasmamos en este post.
Sintaxis
LEAVE label
Esta declaración se usa para salir de la construcción de control de flujo que tiene la etiqueta dada. La etiqueta debe estar en el mismo programa almacenado, no en un procedimiento de llamada. LEAVE
se puede usar dentro de BEGIN … END o construcciones de bucle (LOOP, REPEAT, WHILE). En procedimientos almacenados, disparadores y eventos, LEAVE puede hacer referencia a la construcción BEGIN … END más externa; en ese caso, el programa sale del procedimiento. En funciones almacenadas, se puede usar RETURN en su lugar.
Tenga en cuenta que LEAVE no se puede utilizar para salir de un bloque DECLARE HANDLER.
Si intenta DEJAR una etiqueta inexistente, o si intenta DEJAR un bloque HANDLER, se producirá el siguiente error:
ERROR 1308(42000): LEAVEwithno matching label: <label_name>
El siguiente ejemplo utiliza LEAVE
para salir del procedimiento si una condición es true:
CREATEPROCEDUREproc(IN p TINYINT)CONTAINSSQL`whole_proc`: BEGINSELECT1;IF p <1THENLEAVE`whole_proc`;ENDIF;SELECT2;END;CALLproc(0);+---+|1|+---+|1|+---+
Ver también
- ITERATE – Repite la ejecución de un bucle
El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido por adelantado. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o cualquier otra parte.
Nos puedes favorecer nuestra faena poniendo un comentario o puntuándolo te lo agradecemos.