mysql创建存储过程案例
DELIMITER $$
USE `ccc`$$
DROP PROCEDURE IF EXISTS `cal_exception`$$
CREATE DEFINER=`jirauser`@`%` PROCEDURE `cal_exception`(IN originalCalTime VARCHAR(255),
IN actualTime VARCHAR(255),
IN operator VARCHAR(255),
IN sprintName VARCHAR(255),
IN taskStatus VARCHAR(255),
IN startTime VARCHAR(255),
IN completedTime VARCHAR(255),
IN taskId VARCHAR(255),
OUT v_exceptionResult TEXT
)
BEGIN
DECLARE v_currentDate DATETIME;
SET v_exceptionResult = '';
SET v_currentDate = NOW();
-- 初始化异常结果
SET v_exceptionResult = '';
-- 估时超过40小时
IF originalCalTime > 40 THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '估时超过40小时,');
END IF;
-- 实际工时超过了预估时间
IF actualTime > originalCalTime THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '实际工时超过了预估时间,');
END IF;
-- 未指定经办人
IF operator IS NULL THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '未指定经办人,');
END IF;
-- 任务未关联冲刺
IF sprintName IS NULL THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '任务未关联冲刺,');
END IF;
-- 任务未关联需求
IF taskId IS NULL THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '任务未关联需求,');
END IF;
-- 已完成任务未填实际工时
IF taskStatus = '完成' AND actualTime IS NULL THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '已完成任务未填实际工时,');
END IF;
-- 没有按照预计时间完成
IF taskStatus != '完成' AND completedTime < v_currentDate THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '没有按照预计时间完成,');
END IF;
-- 没有按照预计时间开始
IF startTime < v_currentDate AND taskStatus = '新建' THEN
SET v_exceptionResult = CONCAT(v_exceptionResult, '没有按照预计时间开始,');
END IF;
-- 这里可以继续添加其他的条件检查...
-- 返回异常结果
END$$
DELIMITER ;
调用
call cal_exception()
发表评论