Oi, Raphael! Tudo certo por aí?
Peço desculpas por demorar a te responder.
Parabéns pela resolução do exercício, mandou super bem!
Uma dica para deixar a sua Stored Procedure ainda mais legal é deletar os registros de TABELA_ALEATORIOS
sempre que realizarmos o comando abaixo:
CALL Tabela_Numeros()
Dessa maneira, a cada execução temos uma tabela com distintos números aleatórios! Para isso, precisaremos adicionar o seguinte trecho de código a nossa Stored Procedure:
DELETE FROM TABELA_ALEATORIOS;
Quando usamos o comando DELETE
sem nenhum filtro, todos os dados de determinada tabela são excluídos, e é justamente isso que estamos buscando. Com a inserção desse código, chegamos no seguinte resultado:
DELIMITER $$
CREATE PROCEDURE Tabela_Numeros ()
begin
DECLARE vNUMERO int;
DECLARE CONTADOR int default 0;
DELETE FROM TABELA_ALEATORIOS;
WHILE CONTADOR < 100 DO
select f_NUM_ALEATORIO (0,1000) into vNUMERO;
insert into tabela_aleatorios (NUMERO) values (vNUMERO);
set CONTADOR = CONTADOR + 1;
end WHILE;
select * from tabela_aleatorios;
end $$
DELIMITER ;
Assim, antes de iniciar o laço de repetição WHILE
, a tabela de números perde todos os valores nela armazenados, possibilitando o INSERT
de novos resultados.
Espero que tenha gostado da dica, Raphael. Sinta-se livra para adicioná-la ou não a sua Stored Procedure! Se surgir alguma dúvida, fico à disposição para ajudar.
Um forte abraço!