Procedure(프로시저)
Stored Procedure(저장 프로시저)
SQL문장을 선언해 MySQL에 저장하고, 해당 SQL문을 함수처럼 사용하는 것으로
생성한 프로시저를 함수처럼 호출하여 편하게 사용할 수 있습니다.
생성
DELIMITER $$
DROP PROCEDURE IF EXISTS UPDATE_LOOP $$
CREATE PROCEDURE UPDATE_LOOP()
BEGIN
declare I int;
declear T int;
set I = 1;
set T = 10000;
while T <= 1000000 DO
update table set a = 1
where seq between I and T;
set I = I + 10000;
set T = T + 10000;
END while;
END $$
DELIMITER ;
호출
CALL UPDATE_LOOP();
DELIMITER
저장 프로시저 내부에 사용하는 SQL문은 일반 SQL문이기때문에 세미콜론(;)으로 문장을 끝맺어야 합니다.
저장 프로시저 작성이 완료되지 않았음에도 SQL문이 실행되는 위험을 막기 위해 구분자(;)를 다른 구분자로 바꿔주어야하는데 이 때 사용하는 명령어가 DELIMITER 입나다.
따라서 저장 프로시저 생성 전에 구분자(DELIMITER)를 $$ 으로 바꿔주고 프로시저 작성이 끝났을 때 END $$ 로 저장 프로시저의 끝을 알려준다.
마지막으로 구분자를 원래대로 되돌리기 위해 구분자(DELIMITER)를 세미콜론(;)으로 바꿔준다.