MYSQL

Last-modified: 2008-05-22 (木) 15:59:31

Mysqlのストアドファンクションとストアドプロシージャの相違

処理結果の返却値の記述方法
ストアドファンクションはRETURN文
ストアドプロシージャはOUT指定したパラメータに値をセット

プロシージャの作成例
パラメータが二つ
in_userid,in_id
パラメータの変数名のつけ方についてテーブルカラム名と同一だと誤操作を起こすためinパラメータには「in_」などど明記すること
またはカラム名を``で囲むことも有効である

ストアドプロシージャ

DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`pUser` $$
CREATE DEFINER=`testuser`@`localhost` PROCEDURE `pUser`(in in_userid varchar(8),in in_id bigint)
BEGIN
create Temporary table temp01 (id bigint,userid varchar(8));
insert Into `temp01` (id,userid) select `id` ,`userid` from muser where `userid` = in_userid
and `id` = in_id;
select * from temp01;
END $$
DELIMITER ;