Bom dia a todos
Não sei se é realmente necessário, mas acho que pode ser interessante acrescentar uma atividade falando sobre esse erro que pode ocorrer durante o while.
Eu percebi isso quando resolvi fazer um teste onde o while não teria fim, fazendo a função deste jeito:
CREATE DEFINER=`root`@`localhost` PROCEDURE `looping_while_error`(valor_inicial int, valor_final int)
BEGIN
declare contador int;
delete from looping;
set contador = valor_inicial;
while contador <= valor_final
do
insert into looping values (contador);
//tirei o acrescimo do contador e ele vai ficar no mesmo valor para sempre
end while;
select * from looping;
END
E depois de um tempo (uns 30s), o MySQL interrompeu essa função que estava rodando, e mostrou essa mensagem:
call looping_while_error(5,40) Error Code: 2013. Lost connection to MySQL server during query 30.016 sec
Pode ser interessante citar por ser um erro que pode ser comum, pelo fato de colocar uma condição impossível de chegar no while
ou não colocar uma ação dentro do do
para fazer a condição ser alcançada
Ps: eu quis citar isso porque todos os cursos que eu vi que mostravam o while (lógica de programação e/ou introdução à uma linguagem de programação), sempre citava esse ponto de ter uma maneira do while finalizar para não sobrecarregar e/ou crashar a aplicação