第一种:
create procedure sum1(a int)
begin
declare sum int default 0; -- default 是指定该变量的默认值
declare i int default 1;
while i<=a DO -- 循环开始
insert into record_test (date, record) values (CURTIME(), i);
set i=i+1;
end while; -- 循环结束
select * from record_test; -- 输出结果
end;
-- 执行存储过程
call sum1(100000);
-- 删除存储过程
drop procedure sum1;
第二种:
create procedure sums(a int)
begin
declare sum int default 0;
declare i int default 1;
loop_name:loop -- 循环开始
if i>a then
leave loop_name; -- 判断条件成立则结束循环 好比java中的 break
end if;
insert into record_test (date, record) values (CURTIME(), sum);
set sum=sum+i;
set i=i+1;
end loop; -- 循环结束
select sum; -- 输出结果
end;
-- 执行存储过程
call sums(100);
-- 删除存储过程
drop procedure if exists sums;
第三种:
CREATE PROCEDURE sum55 ( a INT ) BEGIN
DECLARE
sum INT DEFAULT 0;
DECLARE
i INT DEFAULT 1;
REPEAT-- 循环开始
INSERT INTO record_test ( date, record )
VALUES
( CURTIME( ), sum );
SET sum = sum + i;
SET i = i + 1;
UNTIL i > a
END REPEAT;-- 循环结束
SELECT
sum;-- 输出结果
END;-- 执行存储过程
CALL sum55 ( 100 );-- 删除存储过程
DROP PROCEDURE
IF
EXISTS sum55;