存储过程格式
Posted wsh-ning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了存储过程格式相关的知识,希望对你有一定的参考价值。
DELIMITER ||| /*定义结束符*/
DROP PROCEDURE IF EXISTS `test` ||| /*删除存储过程如果存在*/
CREATE PROCEDURE `test`(
IN Id INT UNSIGNED, -- 传入参数
OUT ReturnValue VARCHAR(32), -- 传出参数,定义为错误码
OUT ReturnMessage VARCHAR(1024) -- 传出参数,定义为运行流程
)
MODIFIES SQL DATA
SQL SECURITY INVOKER
COMMENT ‘测试‘
Main : BEGIN /*主体内容开始*/
/*定义状态*/
DECLARE SYSError INT DEFAULT 0;
DECLARE SYSEmpty INT DEFAULT 0;
/*局部变量*/
DECLARE V1 VARCHAR(128) DEFAULT ‘‘;
DECLARE V2 INT UNSIGNED DEFAULT 0;
DECLARE V3 TINYINT UNSIGNED DEFAULT 0;
DECLARE V4 NUMERIC(16,4) DEFAULT 0.0;
/* 声明异常处理(定义系统错误),必须放在变量定义之后*/
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET SYSError = 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET SYSEmpty = 1;
/* 初始化变量*/
-- 存储过程中的变量赋值为 SET
SET ReturnValue = ‘‘;
SET ReturnMessage = ‘测试开始;
-- 开启事务
START TRANSACTION;
SELECT price INTO V1 WHERE `id` = Id;
IF SYSEmpty = 1 THEN
SET ReturnValue = ‘E_SELECT‘;
SET ReturnMessage = CONCAT(ReturnMessage ,‘->‘,‘没找到‘);
LEAVE Main;
ROLLBACK;
END IF;
COMMIT;
SET ReturnValue = ‘OK‘;
SET ReturnMessage = CONCAT(ReturnMessage,‘->‘,‘完毕‘);
END |||
DELIMITER ;
以上是关于存储过程格式的主要内容,如果未能解决你的问题,请参考以下文章