Saltar al contenido

¿Cómo hacer bucles while?

Solución:

No puede hacer un bucle for en un editor SQL sin un procedimiento almacenado. yo suelo MySQL Workbench para hacer esto.

Un procedimiento almacenado rápido debería hacer el trabajo:

DROP PROCEDURE IF EXISTS proc_loop_test;
CREATE PROCEDURE proc_loop_test()
BEGIN
  DECLARE int_val INT DEFAULT 0;
  test_loop : LOOP
    IF (int_val = 10) THEN
      LEAVE test_loop;
    END IF;

    SET int_val = int_val +1;
    SELECT int_val; 
  END LOOP; 
END;

Solo para aclarar que los bucles “while” hacer trabaja:

Se dijo con razón que es necesario crear un procedimiento almacenado (no se pueden ejecutar bloques anónimos como en Oracle, por ejemplo) y, a veces, no funciona bien en editores SQL “genéricos” (ya que PL / SQL no siempre funcionan bueno tampoco)

Puede usar MySQL Workbench, o también la línea de comando:

16:54 [test]:> delimiter $$
16:54 [test]:> create procedure testwhile ()
    -> begin
    ->   declare n int;
    ->   set n:=0;
    ->   while n <10 do
    ->     select n;
    ->     set n := n+1;
    ->   end while;
    -> end;
    -> $$
Query OK, 0 rows affected (0.00 sec)
16:54 [test]:> delimiter ;
16:54 [test]:> call testwhile();
[...]

Como nota al margen, @variables también funcionan, pero son variables de sesión. En este caso, prefiero las variables de procedimiento almacenado local (no se pueden ver ni modificar fuera del alcance del procedimiento)

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *