DATABASE

    mysql
    Create Procedure
    • 조회수 6,458
    • 작성일 2009-01-23
    •  

    MySQL 버전 : mysql-5.0.37

    작성자 : 얼룩푸우(budget74@nate.com)

    MySQL에서 Procedure를 만들어보자.

     

    DELIMITER $$

    CREATE PROCEDURE `owner`.`procedure_name` (IN|OUT|INOUT param_name TYPE )
    BEGIN
             처리문

    END$$

    DELIMITER ;

     

    owner 은 'user name'

    procedure_name 은 말 그대로 '프로시져 이름'

    IN|OUT|INOUT 은 파라미터를 어떤 용도로 사용할 것인지 정의한다.

                  - IN 은 프로시져로 입력

                  - OUT 은 출력

                  - INOUT 은 입력하고 출력

    param_name 은 파라미터 이름

    TYPE 는 변수타입

     

    ex)

    아이디를 입력해서 회원의 이름을 가져오는 프로시져를 만들어 보자.

     

    DELIMITER $$

    CREATE PROCEDURE `tester`.`GET_USER_NAME` (IN userid VARCHAR(2), OUT userName VARCHAR(16) )
    BEGIN
             SELECT user_name INTO userName FROM member WHERE user_id = userid;

    END$$

    DELIMITER ;

     

    이제 사용해 보자

    >CALL GET_USER_NAME('budget74', @userName);
    >SELECT @userName;
    결과 '얼룩푸우'

     

    Procedure 내에서는 참조자(@)는 쓰지 않는다. 그러나 OUT 변수로 사용할때는 사용해준다.

    또한 처리문에 ';' 는 반드시 찍어야 한다. 안 그럼 에러난다.