有如下查询:
DECLARE _f1, f2 int DEFAULT 0;
DECLARE _cursor CURSOR FOR
SELECT f1, f2 FROM tb1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;
OPEN _cursor;
SET _done = 0;
REPEAT
FETCH _cursor into _f1, _f2;
IF _done = 0 then
INSERT tb2 VALUES(_f1, _f2);
END IF;
UNTIL _done END REPEAT;
CLOSE _cursor;
假如tb1表中有N条数据,那么如果我在repeat里面不加上
IF _done = 0 then
INSERT tb2 VALUES(_f1, _f2);
END IF;
而是直接
INSERT tb2 VALUES(_f1, _f2);
那么最终tb2里面会有N+1条数据。