kyuseo의 게임 프로그래밍

MSSQL 에서 MySQL로 스토어드 프로시저(Stored PROCEDURE) 차이점 및 변환방법 본문

개발자 팁

MSSQL 에서 MySQL로 스토어드 프로시저(Stored PROCEDURE) 차이점 및 변환방법

kyuseo 2008. 2. 16. 16:56

개요..

 

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;