http://dbguide.tistory.com/entry/MySQL-5X-FUNCTIONPROCEDURE-%EB%A7%8C%EB%93%A4%EA%B8%B0%EC%98%88%EC%A0%9C
이번엔 커서를...
delimiter $$
DROP PROCEDURE IF EXISTS proc_name$$
CREATE PROCEDURE proc_name()
BEGIN
DECLARE cur_state INT DEFAULT '0';
DECLARE copy_column1 INT DEFAULT '0';
DECLARE copy_column2 INT DEFAULT '0';
DECLARE result_count INT DEFAULT '0';
DECLARE cur CURSOR FOR SELECT column1, column2 FROM table1;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET cur_state = 1;
OPEN cur;
REPEAT
FETCH cur INTO copy_column1, copy_column2; →커서 이동 및 결과 매칭
IF NOT cur_state THEN →커서 상태 체크
UPDATE ...;
SET result_count = result_count + 1;
END IF;
UNTIL cur_state END REPEAT;
CLOSE cur;
IF result_count > 0 THEN
SELECT result_count;
ELSE
SELECT 0;
END IF;
END $$
delimiter ;
: 커서 정의 - cur은 'SELECT column1, column2 FROM table1;'의 커서이다.
: 커서 상태 핸들러 지정(※'02000'의 의미는 잘모르겠다.)
: 커서 열고 닫기.
: do while문과 비슷한 문법.