REPEAT
Оператор REPEAT
Оператор REPEAT, так само як і оператор WHILE, реалізує цикл:
[label:] REPEAT
statement_list UNTIL search_condition
END REPEAT [label]
Відмінною особливістю даного циклу є той факт, що умова циклу search_condition перевіряється не на початку, як у циклі WHILE, а в кінці оператора (ключове слово UNTIL). Таким чином, цикл виконує, принаймні, одну ітерацію незалежно від умови. Слід зазначити, що цикл REPEAT виконується, поки умова search_concition помилково.
Оператор REPEAT може бути використаний з необов'язковою міткою label, по якій можна здійснювати достроковий вихід з циклу за допомогою операторів LEAVE і ITERATE, розглянутих в попередньому розділі.
У прикладі представлена процедура binrand (), яка генерує і виводить випадкову бінарну послідовність з 20 символів. Для формування бінарної послідовності використовується цикл REPEAT.
Приклад:
CREATE PROCEDURE binrand ()
LANGUAGE SQL
BEGIN
DECLARE i INT DEFAULT 0;
DECLARE bin TINYTEXT DEFAULT '';
REPEAT
SET i = i + 1;
IF RAND() >0.5 THEN SET bin = CONCAT(bin, ' 1');
ELSE SET bin = CONCAT(bin, '0') ;
END IF;
UNTIL i >= 20
END REPEAT;
SELECT bin;
END //
CALL binrand()//
bin
1010100011110001111110