• 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 문법
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 1. Stored Programs 정의
    2. 스토어드 루틴 (프로시저 및 함수)의 사용
    1. 스토어드 루틴 구문
    2. 스토어드 루틴과 MySQL 권한
    3. 스토어드 루틴 Metadata
    4. Stored Procedures, Functions, Triggers, and LAST_INSERT_ID()
    3. 트리거 사용
    4. Event Scheduler 사용
    5. Views 사용
    6. Stored Programs 및 Views 액세스 제어
    7. Stored Programs의 Binary Logging
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

20.2.1 스토어드 루틴 구문

스토어드 루틴은 프로 시저 또는 함수 중 하나입니다. 스토어드 루틴은 CREATE PROCEDURE 및 CREATE FUNCTION 문에서 만들어집니다 ( 섹션 13.1.15 "CREATE PROCEDURE 및 CREATE FUNCTION 구문" 을 참조하십시오). 프로시 저는 CALL 문을 사용하여 호출 ( 섹션 13.2.1 "CALL 구문" 을 참조하십시오) 출력 변수의 사용에서만 값을 복원 할 수 있습니다. 함수는 다른 함수와 마찬가지로 (즉, 함수의 이름을 호출하여) 문 내부에서 호출 할 수 스칼라 값을 반환 할 수 있습니다. 스토어드 루틴의 본체는 복합 문을 사용할 수 있습니다 ( 섹션 13.6 "MySQL 복합 문"부분 을 참조하십시오).

스토어드 루틴은 DROP PROCEDURE 및 DROP FUNCTION 문에서 삭제할 수 ( 섹션 13.1.26 "DROP PROCEDURE 및 DROP FUNCTION 구문" 을 참조하십시오) ALTER PROCEDURE 및 ALTER FUNCTION 문에서 변경할 수 있습니다 ( 섹션 13.1.5 "ALTER PROCEDURE 구문 " 을 참조하십시오).

저장 프로 시저 또는 저장 함수는 특정 데이터베이스에 연결되어 있습니다. 여기에는 몇 가지 문제가 있습니다.

  • 루틴이 호출 될 때 암시 적 USE db_name 이 실행됩니다 (그 루틴이 종료하면 원래대로 돌아옵니다). 스토어드 루틴 내에서 USE 문은 허용되지 않습니다.

  • 데이터베이스 이름으로 루틴 이름을 규정 할 수 있습니다. 이것은 현재 데이터베이스에 존재하지 않는 루틴을 참조하는 경우에 사용할 수 있습니다. 예를 들어, test 데이터베이스에 대한 저장 프로 시저 p 또는 스토어드 함수 f 를 호출하려면 CALL test.p() 또는 test.f() 로 지정합니다.

  • 데이터베이스를 삭제하면 해당 데이터베이스에 연결된 모든 스토어드 루틴도 삭제됩니다.

스토어드 함수는 재귀 함수는 없습니다.

저장 프로 시저에서 재귀 허용되어 있지만 기본적으로 비활성화되어 있습니다. 재귀를 사용하려면 max_sp_recursion_depth 서버 시스템 변수를 양수 값으로 설정합니다. 저장 프로 시저의 재귀하여 스레드 스택 공간의 수요가 증가하고 있습니다. max_sp_recursion_depth 값을 늘리면 서버 시작시 thread_stack 의 값을 증가시켜 스레드 스택 크기를 늘리는 것이 필요한 경우도 있습니다. 자세한 내용은 섹션 5.1.4 "서버 시스템 변수" 를 참조하십시오.

MySQL은 일반 SELECT 문을 저장 프로 시저 내에서 (즉, 커서 또는 로컬 변수를 사용하지 않고) 사용 할 수있는 매우 유용한 확장을 지원하고 있습니다. 이러한 쿼리의 결과 집합은 단순히 클라이언트로 직접 전송됩니다. 여러 SELECT 문은 여러 결과 집합을 생성하므로 클라이언트는 여러 결과 집합을 지원하는 MySQL 클라이언트 라이브러리를 사용해야합니다. 이것은 클라이언트가 4.1 이후의 MySQL 버전에서 클라이언트 라이브러리를 사용할 필요가 있다는 것을 의미합니다. 클라이언트는 연결할 때 CLIENT_MULTI_RESULTS 옵션도 지정해야합니다. C 프로그램의 경우 이것은 mysql_real_connect() C API 함수에서 실행할 수 있습니다. 섹션 23.8.7.53 "mysql_real_connect ()" 및 섹션 23.8.17 "여러 문 실행의 C API 지원" 을 참조하십시오.

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