如果在存储过程的SELECT语句中没有返回任何结果,如何跳转到下一次迭代?

时间:2017-12-29 15:29:02

标签: mysql loops stored-procedures continue

我有一个案例,其中SELECT行来自一个表,INSERT行来自另一个表。但是,如果Error: 1329 SQLSTATE: 02000语句没有返回任何行,我会收到SELECT。我可以这样做:

CREATE PROCEDURE SP()
   DECLARE CONTINUE HANDLER FOR NOT FOUND;
   BEGIN
      ITERATE
   END
   BEGIN 
      DECLARE cur1 CURSOR FOR SELECT * FROM table1;
      OPEN cur1; 
      read_loop: LOOP
         FETCH cur1 INTO var1;
         INSERT INTO table2 (SELECT c1 FROM table3)
      END LOOP;
      CLOSE cur1;
   END;

这是对的吗?感谢。

0 个答案:

没有答案