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;


이런식으로 사용하면 된다...

반응형