MySQL – Estruturas de Repetição – comando REPEAT
MySQL – Estruturas de Repetição – comando REPEAT
Dando continuidade às lições sobre blocos iterativos no MySQL, estudaremos neste artigo o comando REPEAT. Lembrando que há três tipos de blocos iterativos disponíveis:
- LOOP
- REPEAT
- WHILE
Comando REPEAT
Sintaxe:
[<rótulo>:] REPEAT
declarações
UNTIL condição
END REPEAT [<rótulo>];
Exemplo do comando REPEAT no MySQL
CREATE PROCEDURE acumula_repita (limite TINYINT UNSIGNED) BEGIN DECLARE contador TINYINT UNSIGNED DEFAULT 0; DECLARE soma INT DEFAULT 0; REPEAT SET contador = contador + 1; SET soma = soma + contador; UNTIL contador >= limite END REPEAT; SELECT soma; END// DELIMITER ; -- testando a estrutura REPITA: CALL acumula_repita(10); CALL acumula_repita(0); -- Este resulta em valor errado, pois -- o contador é incrementado ANTES do teste condicional.
Exemplo do comando REPEAT com a cláusula LEAVE:
-- Resolvendo o problema do teste de REPITA DROP PROCEDURE IF EXISTS acumula_repita; DELIMITER // CREATE PROCEDURE acumula_repita (limite TINYINT UNSIGNED) main: BEGIN DECLARE contador TINYINT UNSIGNED DEFAULT 0; DECLARE soma INT DEFAULT 0; IF limite < 1 THEN SELECT 'O valor deve ser maior que zero.' AS Erro; LEAVE main; END IF; REPEAT SET contador = contador + 1; SET soma = soma + contador; UNTIL contador >= limite END REPEAT; SELECT soma; END// DELIMITER ; -- testando a estrutura REPITA: CALL acumula_repita(10); CALL acumula_repita(0); -- Agora o erro é reportado.
Assista ao vídeo abaixo para ver as explicações sobre o comando REPITA e ver os códigos listados em ação:
Escreva um comentário