Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 저장 프로 시저를 통해 루프하는 방법은 무엇입니까?

<시간/>

MySQL에서 저장 프로시저를 반복하는 방법을 살펴보겠습니다.

mysql> DELIMITER //
mysql> CREATE PROCEDURE do_WhileDemo(LastValue INT)
   -> BEGIN
      -> SET @loop = 0;
      -> REPEAT
         -> SET @loop= @loop+ 1;
         -> select @loop;
         -> UNTIL @loop >LastValue
      -> END REPEAT;
   -> END //
Query OK, 0 rows affected (0.17 sec)
mysql> DELIMITER ;

이제 CALL 명령을 사용하여 저장 프로시저를 호출합니다.

쿼리는 다음과 같습니다

mysql> call do_WhileDemo(10);
호출

다음은 출력입니다.

+-------+
| @loop |
+-------+
| 1     |
+-------+
1 row in set (0.00 sec)
+-------+
| @loop |
+-------+
| 2     |
+-------+
1 row in set (0.01 sec)
+-------+
| @loop |
+-------+
| 3     |
+-------+
1 row in set (0.02 sec)
+-------+
| @loop |
+-------+
| 4     |
+-------+
1 row in set (0.03 sec)
+-------+
| @loop |
+-------+
| 5     |
+-------+
1 row in set (0.04 sec)
+-------+
| @loop |
+-------+
| 6     |
+-------+
1 row in set (0.04 sec)
+-------+
| @loop |
+-------+
| 7     |
+-------+
1 row in set (0.05 sec)
+-------+
| @loop |
+-------+
| 8     |
+-------+
1 row in set (0.06 sec)
+-------+
| @loop |
+-------+
| 9     |
+-------+
1 row in set (0.07 sec)
+-------+
| @loop |
+-------+
| 10    |
+-------+
1 row in set (0.08 sec)
+-------+
| @loop |
+-------+
| 11    |
+-------+
1 row in set (0.09 sec)
Query OK, 0 rows affected (0.10 sec)