Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Minha resolução

Está gerando um número apenas cada vez que eu chamo a Procedure, ao invés de gerar 100 números. O que está errado?


```CREATE DEFINER=`root`@`localhost` PROCEDURE `Tabela_Numeros`()
BEGIN
DECLARE vContador INT DEFAULT 1;
DECLARE NUMERO INT;
DECLARE QTDE INT;
WHILE vContador <= 100
DO
    SELECT f_numero_aleatorio(0,1000) INTO NUMERO;
    INSERT INTO TABELA_ALEATORIOS(NUMERO) VALUE (NUMERO);
    SET vContador = vContador + 1;
END WHILE;
SELECT NUMERO;
END``

CALL Tabela_Numeros;
2 respostas
solução!

Oi, Patrícia! Tudo bem por aí?

Para visualizar os 100 números aleatórios, precisamos realizar um SELECT em TABELA_ALEATORIOS — observe que, em sua stored procedure, estamos consultando a variável NUMERO, ocasionando a apresentação de somente um número.

Depois de atualizarmos a stored procedure, chegaremos neste resultado:

CREATE DEFINER=`root`@`localhost` PROCEDURE `Tabela_Numeros`()
BEGIN
DECLARE vContador INT DEFAULT 1;
DECLARE NUMERO INT;
DECLARE QTDE INT;
WHILE vContador <= 100
DO
    SELECT f_numero_aleatorio(0,1000) INTO NUMERO;
    INSERT INTO TABELA_ALEATORIOS(NUMERO) VALUE (NUMERO);
    SET vContador = vContador + 1;
END WHILE;
SELECT * from TABELA_ALEATORIOS;
END

Espero ter ajudado, Patrícia! Qualquer dúvida, estou por aqui.

Um abraço!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Oi Andrieli, obrigada :)