MySQL Stored Program   MySQL 저장 프로그램

(2018-05-15)
1. MySQL Stored Program

  ㅇ 나중에 절차적으로 실행할 수 있도록 서버 측에 저장되는 프로그램들을 총칭
     - Stored Function  : 수식에 사용되며 계산결과 값 만을 반환
     - Stored Procedure : 결과 세트를 생성 및 반환
     - Trigger          : 테이블이 INSERT,DELETE,UPDATE 될 때에 만 실행됨
     - Event            : 스케줄러에 저장되고 시간에 의해 실행됨

  ㅇ 모두 동일한 문법으로 작성 처리됨

  ㅇ 실행 방법
     - 저장 함수 실행        : `SELECT 문` 내에서 호출 실행
     - 저장 프로시저 실행    : `CALL 프로시저명;`으로 호출 실행
     - 이벤트 실행           : `이벤트 스케줄러`를 가동시켜 그에의해 실행

     * 외부 텍스트파일 *.sql 실행 : SOURCE 외부파일명; 

  ㅇ 현재 등록된 Procedure/Function 확인 방법 
     - Stored Procedure : SHOW PROCEDURE STATUS;
     - Stored Function  : SHOW FUNCTION STATUS;


2. Event 및 Event Scheduler이벤트 스케줄러 가동 여부 확인 : SHOW VARIABLES LIKE 'event_scheduler';
  ㅇ 서버 기동시 강제 가동          : (my.ini 또는 my.cnf) [mysqld] event_scheduler = ON
     - 서버 기동시, 이벤트 스케줄러 스레드가 자동 가동됨
  ㅇ 시스템 변수에 의한 가동        : SET GLOBAL EVENT_SCHEDULER = ON;
  ㅇ 현재 등록된 이벤트 확인        : show events;
  ㅇ 사용 例) 
       
DROP EVENT IF EXISTS periodic_stat;

CREATE EVENT 이벤트명
    ON SCHEDULE
        EVERY 30 MINUTE            -- 매 30분 마다
          -- 1회 만 실행의 경우에는, 
          -- EVERY 절 대신에. => AT 절을 사용 함
	STARTS CURRENT_TIMESTAMP   -- 현재 시각(CURRENT_TIMESTAMP)부터 시작 함
          -- 또는, SRART '2018-05-15 00:00:00' END '2018-05-15 02:00:00' 처럼
          -- 직접적으로 시작 끝의 시각을 명시하는 것도 가능
    DO
	CALL 함수명();             -- 별도수행 함수에 의한 호출 실행
          -- 단지 1개 쿼리문 또는 별도 프로시저 실행
          -- 또는 BEGIN ~ END에 의한 복합절도 가능
3. 주요 문법주석 (comment) : /* */, #, -- (3 가지) ㅇ 제어문 - IF
IF expression THEN commands
[ELSEIF expression THEN commands ....]
[ELSE commands]
END IF;
- CASE 문
CASE expression
    WHEN value THEN statements
    [WHEN value THEN statements]
    [WHEN value THEN statements]
    .
    .
    [ELSE statements]
END CASE;
반복문 - LOOP ~ END (빠져나가기 : LEAVE, 처음으로가기 : ITERATE) - REPEAT ~ UNTIL - WHILE ㅇ CURSOR - 1 이상의 결과 set를 return 하기 위해 사용 - DECLARE cname CURSOR FOR SELECT ... . OPEN : 커서를 사용하기 위해 fetch 전에 반드시 처리 . FETCH : 커서가 다음 row 로 이동 . CLOSE : 커서를 닫아줌


[MySQL] 1. MySQL 2. MySQL 서버 3. 저장 프로그램 4. 문자 세트 5. MySQL 백업 6. MySQL 계정 7. MySQL 활용 (기타) 8. MySQL 함수

 
        최근수정     요약목록(시험중)     참고문헌