Procedure

어떤 업무를 수행하기 위한 절차, Function 과 비슷한 역할을 수행하지만 다른점이 있다.

Procedure VS Function

프로시저(Procedure)함수(Function)
특정 작업을 수행특정 계산을 수행
반환 값이 있거나 없을 수 있음반환 값이 있어야 함
반환 값이 여러개가 될 수 있음반환 값은 반드시 1개
수식 내에서 호출 불가수색 내에서만 호출 가능

SYNTAX

DELIMITER $$ 
CREATE PROCEDURE {procedure_name} ( 
	IN NAME VARCHAR(20), -- 입력용 파라미터  
	IN AGE INT,
	OUT x, -- 결과 저장용
	OUT y,
	OUT z
) BEGIN 
	-- 내용
	 
  END $$ 
DELIMITER ;

예시

DELIMITER $$  
CREATE PROCEDURE multiply(IN a INT, IN b INT, OUT c INT)  
BEGIN  
    SET c = a * b;  
END $$  
DELIMITER ;  
  
  
CALL multiply(2, 3, @result);  
SELECT @result;
# 6 

특징

  • DB 레벨에서 수행되기 때문에 성능상 이점을 가져갈 수 있음
  • 성능상 향상을 가져갈 수 있지만, 인덱스 힌트가 없으면 최적화가 되지 않을 수 있기에 주의해야 함.
  • 개발시 프로시저에 대한 가시성이 확보되지 않아 어려움이 있을 수 있음.