MySQL 저장 프로시저 호출하기
MySQL에서 저장 프로시저(Stored Procedure)를 호출하려면 CALL 문을 사용합니다. CALL 키워드 뒤에 실행하고자 하는 프로시저 이름을 지정하면, 해당 프로시저에 정의된 SQL 로직이 즉시 실행됩니다.
기본 문법
CALL 프로시저_이름();
저장 프로시저에 입력 매개변수가 정의되어 있는 경우에는 아래와 같이 괄호 안에 인자를 전달하여 호출할 수도 있습니다.
CALL 프로시저_이름(인자1, 인자2, ...);
예제: allrecords() 프로시저 호출
다음 예제는 CALL 문을 사용하여 allrecords()라는 저장 프로시저를 호출하는 과정을 보여줍니다.
mysql> CALL allrecords(); +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 100 | Aarav | Delhi | Computers | | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 110 | Rahul | Chandigarh | History | +------+---------+------------+------------+ 4 rows in set (0.00 sec) Query OK, 0 rows affected (0.01 sec)
실행 결과 분석
위 출력 결과를 보면, allrecords() 프로시저가 학생 정보 테이블의 모든 레코드를 조회하여 반환한 것을 확인할 수 있습니다. 각 행에는 학생의 id, Name(이름), Address(주소), Subject(과목) 정보가 포함되어 있으며, 총 4개의 행이 약 0.00초 만에 빠르게 조회되었습니다.
마지막 줄의 Query OK, 0 rows affected 메시지는 프로시저 자체의 실행이 오류 없이 정상적으로 완료되었음을 의미합니다. SELECT 결과로 반환된 데이터 행과 달리, 프로시저 호출 자체는 별도의 행 변경 없이 종료되기 때문에 이러한 메시지가 출력됩니다.
정리
MySQL에서 저장 프로시저를 실행하는 방법은 매우 간단합니다. 핵심 포인트를 요약하면 다음과 같습니다.
- CALL 문을 사용하여 저장 프로시저를 호출합니다.
- 프로시저 이름 뒤의 괄호 안에 필요한 매개변수를 전달할 수 있습니다.
- 호출 결과로 프로시저 내부의 SELECT 결과 집합과 함께 'Query OK' 상태 메시지가 반환됩니다.