http://kb.globalsoft.co.kr/web/web_view.php?notice_no=227



저장 프로시저란 여러 SQL 문을 하나의 SQL 문처럼 정리하여 CALL ?? 라는 명령으로 실행할 수 있게 만든 것을 저장 프로시저라고 합니다.

저장 프로시저는 함수와 같이 미리 만들어 놓고 호출하는 형태로 사용됩니다.

저장 프로시저에 대해서 간단히 알아보겠습니다. MySQL 버전 5.0 이상에서 사용 가능합니다.

 

 

일단 저장 프로시저를 사용하려면 DELIMITER 명령으로 명령어의 끝맺음을 세미콜론에서 다른 문자로 바꿔야 합니다.

DELIMITER 명령으로 끝맺음 문자를 바꾸지 않으면 위와 같은 문제가 발생합니다.

 

 

저장 프로시저를 생성할 때는 CREATE PROCEDURE 라는 명령으로 생성합니다.

그리고 BEGIN 과 END 사이에 해당 프로시저를 호출 했을 때 실행할 쿼리문을 작성합니다.

DELIMITER 명령으로 끝맺음 문자를 //로 바꿨기 때문에 마지막엔 //로 저장 프로시저 명령문을 종료합니다.

 

 

저장 프로시저가 정상적으로 생성됐으니 한번 실행해보겠습니다.

실행할 때는 CALL 프로시저이름 형태로 실행합니다.

정상적으로 저장 프로시저 등록한 쿼리가 호출됩니다.​

 


위의 쿼리는 저장 프로시저에는 여러가지 쿼리문을 넣을 수 있다는 것을 보여주는 형태입니다.

tb1을 조회 하고 tb1에 값을 넣는 프로시저 입니다.

 


방금 만든 procedure_test2 를 호출하면 일단 tb1의 레코드를 모두 보여주고 나서 tb1에 값을 추가합니다.

 

 

procedure_test 프로시저로 정상적으로 procedure_test2의 프로시저가 실행됐는지 확인합니다.

테스트란 이름을 가진 사용자가 정상적으로 등록 됐습니다.

 

 

저장 프로시저를 삭제하려면 DROP PROCEDURE 명령으로 삭제하시면 됩니다.