[MySQL] MySQL Cursor

DB / NoSQL/MariaDB/MySQL 2014. 10. 16. 15:56

링크: http://dev.mysql.com/doc/refman/5.5/en/cursors.html


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;

posted by 뚱2