Spec-Zone .ru
спецификации, руководства, описания, API

13.6.6. Cursors

13.6.6.1. Cursor CLOSE Syntax
13.6.6.2. Cursor DECLARESyntax
13.6.6.3. Cursor FETCH Syntax
13.6.6.4. Cursor OPEN Syntax

MySQL supports cursors inside stored programs. The syntax is as in embedded SQL. Cursors have these properties:

Cursor declarations must appear before handler declarations and after variable and condition declarations.

Example:

CREATE PROCEDURE curdemo()BEGIN  DECLARE done INT DEFAULT FALSE;  DECLARE a CHAR(16);  DECLARE b, c INT;  DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1;  DECLARE cur2 CURSOR FOR SELECT i FROM test.t2;  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;  OPEN cur1;  OPEN cur2;  read_loop: LOOP    FETCH cur1 INTO a, b;    FETCH cur2 INTO c;    IF done THEN      LEAVE read_loop;    END IF;    IF b < c THEN      INSERT INTO test.t3 VALUES (a,b);    ELSE      INSERT INTO test.t3 VALUES (a,c);    END IF;  END LOOP;  CLOSE cur1;  CLOSE cur2;END;