procedure과 비슷한 용도인 function이 있다.
- procedure : 긴 쿼리문을 재사용하고 싶을 때
- function : 간단한 쿼리문(사칙연산 등)을 재사용하고 싶을 때
procedure과 function의 차이점
- procedure은 CALL 문법과 함께 호출해야하나 function은 CALL이 필요없다.
- procedure은 RETURN이 필요없지만 function은 필요하다.
- function안에서는 SELECT문법으로 테이블 값을 출력할 수 없다.
- DETERMINISTIC 사용 이유
- DETERMINISTIC으로 생성시, MySQL에서 이 함수가 입력값이 동일하면 출력값은 항상 동일하다는 것을 인지하고 단 1번만 이 함수를 호출해서 결과값으로 a컬럼을 검색한다.
⇒ 속도 측면에서 빠르다!
- default는 NOT DETERMINISTIC
"원"을 "엔"으로 계산하는 수식을 자주 사용하기 위해 function으로 만들고 싶다.
5000원 이상이면 무료배송, 5000원 미만이면 3000원의 배송비를 붙여서 계산하고 싶다.
자주 사용할 것 같으니 function으로 만들어도 괜찮을 것 같다.