Antes de empezar con las instrucciones propias para el control del flujo, vale la pena indicar el uso de las variables dentro de los procedimientos.
DECLARE nombre_variable tipe [DEFAULT valor]
Este comando se usa para declarar variables locales. Para proporcionar un valor por defecto para la variable, se incluye la cláusula DEFAULT. El valor puede especificarse como una expresión, es decir, no necesita ser una constante. Si no se indica la cláusula DEFAULT, el valor inicial será NULL. Una variable local sólo es visible dentro del bloque BEGIN ... END donde está declarada.Para cambiar el valor de una variable se usa SET de este modo:
SET nombre_variable = expresion
Y para terminar este rápido repaso, recordar también que para poder acceder a una variable local a la finalización de un procedimiento se tiene que usar los parámetros de salida.Bueno y ahora a lo que quería explicar:
IF condicion THEN sentencia
[ELSEIF condicion THEN sentencia]
[ELSE sentencia]
END IF
Ejemplo: > DELIMITER //
> CREATE PROCEDURE miProcedimiento(IN p1 INT)
> BEGIN
> DECLARE miVariable INT;
> SET miVariable = p1 * 2;
> IF miVariable = 2 THEN
> INSERT INTO lista VALUES(22);
> ELSEIF
miVariable = 4 THEN
> INSERT INTO lista VALUES(4444);
> ELSE
> INSERT INTO lista VALUES(1);
> END IF;
> END;
> //
CASE valor
WHEN cuando_el_valor THEN sentencia
[WHEN cuando_el_valor THEN sentencia]
[ELSE sentencia]
END CASE
oCASE
WHEN condicion THEN sentencia
[WHEN condicion THEN sentencia]
[ELSE sentencia]
END CASE
Ejemplo:> DELIMITER //
> CREATE PROCEDURE miProcedimiento(IN p1 INT)
> BEGIN
> DECLARE miVariable INT;
> SET miVariable = p1 * 2;
> CASE miVariable
> WHEN 2 THEN
INSERT INTO lista VALUES(22);
>
WHEN 4 THEN
INSERT INTO lista VALUES(4444);
> ELSE
INSERT INTO lista VALUES(1);
> END CASE;
> END;
> //
REPEAT
sentencia
UNTIL condicion
END REPEAT
Ejemplo:> DELIMITER //
> CREATE PROCEDURE miProcedimiento()
> BEGIN
> DECLARE miVariable INT;
> SET miVariable = 1;
> REPEAT
>
INSERT INTO lista VALUES(miVariable);
>
SET miVariable = miVariable + 1
;
> UNTIL v >= 5;
> END REPEAT;
> END;
> //
WHILE condicion DO
sentencia
END WHILE
Ejemplo:> DELIMITER //
> CREATE PROCEDURE miProcedimiento()
> BEGIN
> DECLARE miVariable INT;
> SET miVariable = 1;
> WHILE
v >= 5 DO
>
INSERT INTO lista VALUES(miVariable);
>
SET miVariable = miVariable + 1
;
> END WHILE;
> END;
> //
[Etiqueta:] LOOP
sentencia
END LOOP [Etiqueta]
Ejemplo:> DELIMITER //
> CREATE PROCEDURE miProcedimiento()
> BEGIN
> DECLARE miVariable INT;
> SET miVariable = 1;
> loop_label : LOOP
>
INSERT INTO lista VALUES(miVariable);
>
SET miVariable = miVariable + 1
;
> IF v >= 5 THEN
> LEAVE loop_label;
> END IF;
> END LOOP;
> END;
> //
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.