반응형
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;
이런식으로 사용하면 된다...
반응형
'mysql' 카테고리의 다른 글
mysql mariadb 디비 정기 백업 (0) | 2021.01.26 |
---|---|
maria DB 레플리케이션(클러스터링) 서버 구축 (0) | 2019.05.30 |
mysql 트리거를 만들어보자 - 삭제시 자동 insert (0) | 2018.08.03 |
marked as crashed and last (automatic?) repair failed 와 같은 오류가 난다면... (0) | 2018.07.05 |
mysql view 사용하기 (0) | 2018.06.18 |