MYSQL

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

SojuMan 2009. 9. 29. 10:32

내용이 좋아 업어 왔습니다. 많은 분들이 좋은 자료를 찾기를 바라면서 ^^

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;