13.6.6 커서
MySQL은 저장된 프로그램 내부의 커서를 지원합니다. 문법, 임베디드 SQL의 경우와 마찬가지입니다. 커서는 다음의 특성이 있습니다.
Asensitive : 서버는 결과 테이블의 복사본을 만들 때와하지 않을 수 있습니다
읽기 전용 : 업데이트 할 수 없습니다
스크롤 불가 : 한 방향으로 만 통과 할 수 없으며 행을 건너 뛸 수 없습니다
커서 선언은 핸들러 선언 앞에서하고 변수 및 조건 선언 다음에 지정해야합니다.
예 :
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;