내용이 좋아 업어 왔습니다. 많은 분들이 좋은 자료를 찾기를 바라면서 ^^
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; |