티스토리 뷰

[기본 생성]

mysql> Delimiter $$ ( SQL 문장 종료 구문을 기존 ; 에서 $$ 로 변경 )

mysql> CREATE PROCEDURE sample(Param int(11))

    -> BEGIN

    -> SELECT Param;

    -> END $$

mysql> Delimiter ; ( $$ 에서 다시 ; 로 변경 )

 


파라미터 없는 프로시저


DELIMITER //

CREATE PROCEDURE count_member() 
 SELECT COUNT(*) FROM member
//

DELIMITER ;

아이디와 패스워드를 파라미터로 받는 프로시저


DELIMITER //

CREATE PROCEDURE Authentication(USER_ID varchar(30), USER_PW varchar(100))
IF EXISTS (SELECT 1 FROM member where user_id = USER_ID and password = USER_PW) THEN
    select 1 as result;
ELSE 
    select 0 as result;
END IF;
//

DELIMITER ;

호출방법


CALL Authentication('userid','md5hashpassword');



[결과 확인]

mysql> call sample(100);

+-------+

| Param |

+-------+

|   100 |

+-------+

1 row in set (0.00 sec)

 

[프로시저 리스트 확인]

1) mysql> SHOW PROCEDURE STATUS;

2) mysql> SHOW PROCEDURE STATUS WHERE Db = '데이터베이스 이름'; 

 


[프로시저 삭제]

mysql> DROP PROCEDURE IF EXISTS procedure명

 

[프로시저 내용 확인]

mysql> SHOW CREATE PROCEDURE sample;



댓글
댓글쓰기 폼