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.