mysql
mysql 함수 만들기, 사용하기
에스크리토
2018. 8. 14. 10:10
반응형
DELIMITER $$
DROP FUNCTION IF EXISTS 디비명.펑션이름$$
CREATE FUNCTION 디비명.펑션이름($변수1 VARCHAR(255), $변수2 int(11)) RETURNS INT
BEGIN
DECLARE result INT DEFAULT -1;
SELECT COUNT(*) INTO result FROM 테이블;
RETURN result;
END $$
DELIMITER ;
위와 같이 한다...
파라미터는 없을수도 있고 1개 또는 2개 일수도 있다...
파라미터를 받을때 받는 파라미터의 형식도 지정해줘야한다.
또 리턴해줄 값에 대한 형식도 미리 선언해야한다.
리턴해줄 값이 int 라서 int로 선언해준다.
위 예제를 참조해서 다음과 같은 함수를 만들어 보자...
사용자 id를 입력하면 현재 마일리지를 리턴해주는 함수다
DELIMITER $$
CREATE DEFINER=`test`@`127.0.0.1` FUNCTION `myMieage`(puid varchar(50)) RETURNS int(11)
BEGIN
Declare ML int(11);
set ML=null;
select mileage into ML from mileageTable where uid=puid order by num desc limit 1;
return ML;
END
DELIMITER ;
이렇게 만들고 다음과 같이 불러온다...
select uid, myMieage(uid) from member;
이런식으로 사용하면 된다...
반응형