MySQL 5.1 リファレンスマニュアル :: 17 ストアドプロシージャとファンクション :: 17.2 ストアドルーチン構文 :: 17.2.10 フローコントロール・コンストラクト :: 17.2.10.6 REPEAT ステートメント
« 17.2.10.5 ITERATE ステートメント

17.2.10.7 WHILE ステートメント »
Section Navigation      [Toggle]
  • 17.2.10 フローコントロール・コンストラクト
  • 17.2.10.1 IF ステートメント
  • 17.2.10.2 CASEステートメント
  • 17.2.10.3 LOOP ステートメント
  • 17.2.10.4 LEAVE ステートメント
  • 17.2.10.5 ITERATE ステートメント
  • 17.2.10.6 REPEAT ステートメント
  • 17.2.10.7 WHILE ステートメント

17.2.10.6. REPEAT ステートメント

[begin_label:] REPEAT
    statement_list
UNTIL search_condition
END REPEAT [end_label]

REPEATステートメント中のステートメントリストは、search_conditionが真になるまで繰り返されます。このようにして、REPEAT は常に、少なくとも1回入力ループを書き込みます。 statement_list は複数のステートメントから成り立っています。

REPEATステートメントにはラベルを貼ることができます。begin_label がなければ、end_label を与える事はできません。両方が存在する場合、これらは同じでなければなりません。

例:

mysql> delimiter //

mysql> CREATE PROCEDURE dorepeat(p1 INT)
    -> BEGIN
    ->   SET @x = 0;
    ->   REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> CALL dorepeat(1000)//
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @x//
+------+
| @x   |
+------+
| 1001 |
+------+
1 row in set (0.00 sec)
Copyright © 1997, 2010, Oracle and/or its affiliates. All rights reserved. Legal Notices
Top / Previous / Next / Up / Table of Contents
© 2010, Oracle Corporation and/or its affiliates