본문 바로가기
프로그래밍/DB

mysql 프로시져 생성, 호출

by Super User 2009. 7. 8.
출처 Professional | hongjae83
원본 http://blog.naver.com/hongjae83/150034876380

test 테이블을 하나 생성합니다

(ex)

-- create News table, be sure to be in a 'test' DB
CREATE TABLE News
(NewsID int auto_increment not null, Title varchar(32), primary key(NewsID))


----------------------------------------

프로시져 만드는 형식

DELIMITER $$

DROP PROCEDURE IF EXISTS sprocTest $$
CREATE PROCEDURE sprocTest ()
BEGIN

END $$

DELIMITER ;

----------------------------------------


----------------------------------------

파라미터가 1개있는 select프로시져
DELIMITER $$

DROP PROCEDURE IF EXISTS sprocTest $$
CREATE PROCEDURE sprocTest (id int)
BEGIN
 SELECT * FROM News WHERE NewsID=id;
END $$

DELIMITER ;

----------------------------------------


----------------------------------------

파라미터가 2개있는 select 프로시져
DELIMITER $$

DROP PROCEDURE IF EXISTS sprocTest $$
CREATE PROCEDURE sprocTest (id int, title varchar(32))
BEGIN
 -- INSERT NEW RECORD IF PREEXISTING RECORD DOESNT EXIST
 IF (id = 0) THEN
   SET id = null;
 END IF;

 IF (id IS NOT NULL) AND (EXISTS (SELECT * FROM News WHERE NewsID=id))
 THEN
   UPDATE News SET Title=title WHERE NewsID=id;
 ELSE
   INSERT INTO News (Title) VALUES (title);
 END IF;
END $$

DELIMITER ;

----------------------------------------


----------------------------------------

호출방법
call 프로시져이름(파라미터)

----------------------------------------

'프로그래밍 > DB' 카테고리의 다른 글

mysqldump 옵션 및 사용법  (0) 2009.07.08
Mysql procedure sample source  (0) 2009.07.08
## MySQL root 패스워드 분실시  (0) 2009.06.18
Mysql DB 백업/ 복원  (0) 2009.06.11
초보자를 위한「MySQL 백업·복구」강좌  (0) 2009.06.10