kyuseo의 게임 프로그래밍
MSSQL 에서 MySQL로 스토어드 프로시저(Stored PROCEDURE) 차이점 및 변환방법 본문
개요.. |
MSSQL 에서 개발한 스토어드 프로시저(Stored PROCEDURE)를 MySQL 에서 작동이 되도록 변환하면서 터득한 차이점 및 방법을 공개합니다.
MySQL 스토어드 프로시저의 모습
차이점 |
MSSQL | MySQL | |
변수 명 | '@' 사용 @bid | '$'사용 $bid |
실행 방법 | exec SPDeleteItem | call test1( 'param', 1 ) |
변수 선언 | declare @bid binary(12) | declare $bid varchar(12); |
함수 인자 | create proc SPCheckBadUser @userid varchar(12) | CREATE DEFINER=`root`@`%` PROCEDURE `test1`( $bid varchar(12) ) |
기본 사용 예 | create proc SPAddBadReport @nickname varchar(12), @reporterid varchar(12), @reason varchar(60), @chating varchar(2500)
as
declare @bad_userid varchar(12)
@nickname, @bad_userid output
if @bad_userid is not null begin insert dbo.bad_report values( @bad_userid, @nickname, @reporterid, @reason, @chating, getdate() ) end | DELIMITER $$;
DROP PROCEDURE IF EXISTS `test`.`test1`$$
CREATE DEFINER=`root`@`%` PROCEDURE `test1`( $a varchar(12), $b int )
BEGIN
declare $bid varchar(12);
set $bid = "wrew";
select $bid, $a, $b;
END$$
DELIMITER ;$$ |
라인단위 | 라인의 끝에 특수문자를 붙이지 않는다. | 라인의 끝에 특수문자 ; 를 붙인다. select $bid, $a, $b; |
if 구문 | if @bad_userid is not null begin end | if $bid = '1' then set $a = 1; else set $a = 2; END IF; |