- 사용자가 정의한 함수
- DBMS에 저장되고 사용하는 함수
- SQL의 select, insert, update, delete에서 사용할 수 있다.
예시
delimiter $$
CREATE FUNCTION id_generator()
RETURNS int
BEGIN
RETURN (1000000000 + floor(rand() * 1000000000));
END
$$
delimiter;
- 위 예시 쿼리는 ID의 맨 앞자리를 1으로 고정하여 생성하는 함수이다.
CREATE FUNCTION
으로 함수명을 지정한다.RETURNS
뒤에는 반환되는 데이터 타입을 지정해준다.BEGIN ~ END
사이에 실제로 실행해야하는 내용을 작성한다.
IMPORTANT
;가 끝이라고 판단할 수 있기 때문에 delimiter를 지정해주어야한다.
함수 사용 예시
INSERT INTO article
VALUES (id_generator(), 'title', 'content');
- id를 id_generator()를 사용한 결과로 지정할 수 있게된다.
함수 삭제
DROP FUNCTION [function_name];
함수 조회
SHOW FUNCTION STATUS where DB = 'company';
- where에 DB를 지정해주면 지정한 DB에 생성된 function들을 출력한다.
NOTE
기본적으로 DB를 지정하지 않고 생성된 Function은 활성화된 DB에 생성된다.
함수 내용 출력
SHOW CREATE FUNCTION id_generator;
[reference]