• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    1. BEGIN ... END 복합 명령문 구문
    2. 레이블 구문
    3. DECLARE 구문
    4. 저장 프로그램 내의 변수
    5. 흐름 제어문
    6. 커서
    1. 커서 CLOSE 구문
    2. 커서 DECLARE 구문
    3. 커서의 FETCH 구문
    4. 커서의 OPEN 구문
    7. 조건의 처리
    7. 데이터베이스 관리 문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.6.6 커서

13.6.6.1 커서 CLOSE 구문
13.6.6.2 커서 DECLARE 구문
13.6.6.3 커서의 FETCH 구문
13.6.6.4 커서의 OPEN 구문

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;


서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved