mysql循环执行sql语句,网上搜到的结果大部分是这样的:
我不知道博客作者有没有测过,还是说我的MySQL软件有问题。
=========================================================================
经过研究学习,测试,正确姿势如下:
DROP PROCEDURE IF EXISTS proc_initData; # 删除存储过程
DELIMITER // # 设置分割符1,注意:与上一步 删除存储过程 顺序不能调换
CREATE PROCEDURE proc_initData()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i<=1 DO
SELECT * FROM employees;
SET i = i+1;
END WHILE;
END
//
DELIMITER ; # 设置分割符2
CALL proc_initData(); # 调用存储过程,注意:与上一步 设置分割符2 顺序不能调换
下面贴出MySQL常用的3种循环(SQL语句摘自MySQL 存储过程 | 菜鸟教程):
1. repeat循环
mysql > DELIMITER //
mysql > CREATE PROCEDURE proc5 ()
-> begin
-> declare v int;
-> set v=0;
-> repeat
-> insert into t values(v);
-> set v=v+1;
-> until v>=5
-> end repeat;
-> end;
-> //
mysql > DELIMITER ;
2. loop循环
mysql > DELIMITER //
mysql > CREATE PROCEDURE proc6 ()
-> begin
-> declare v int;
-> set v=0;
-> LOOP_LABLE:loop
-> insert into t values(v);
-> set v=v+1;
-> if v >=5 then
-> leave LOOP_LABLE;
-> end if;
-> end loop;
-> end;
-> //
mysql > DELIMITER ;
3. while循环
mysql > DELIMITER //
mysql > CREATE PROCEDURE proc4()
-> begin
-> declare var int;
-> set var=0;
-> while var<6 do
-> insert into t values(var);
-> set var=var+1;
-> end while;
-> end;
-> //
mysql > DELIMITER ;
更多推荐
mysql循环执行sql语句,与大部分博客不一样的正确写法
发布评论