SQL 过程中的 REPEAT 语句

REPEAT 语句定义在 REPEAT 循环结束时条件求值为 true 之前执行的一组语句。

REPEAT 循环条件是在每次循环迭代完成时求值的。

对于 WHILE 语句,如果 WHILE 循环条件在第 1 轮求值为 false,那么不会进入循环。REPEAT 语句也可替代使用;但是,不值得将 WHILE 循环逻辑重写为 REPEAT 语句。

以下是包括 REPEAT 语句的 SQL 过程:

  CREATE PROCEDURE sum_mn2 (IN p_start INT
                           ,IN p_end INT
                           ,OUT p_sum INT)
  SPECIFIC sum_mn2
  LANGUAGE SQL
  smn2: BEGIN
  
    DECLARE v_temp INTEGER DEFAULT 0;
    DECLARE v_current INTEGER;

    SET v_current = p_start;

    REPEAT
      SET v_temp = v_temp + v_current;
      SET v_current = v_current + 1;
    UNTIL (v_current > p_end)
    END REPEAT;
  END