欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

mysql MySqlDump数据库备份代码

程序员文章站 2022-05-15 08:00:06
...
DELIMITER $$ 
 
CREATE DEFINER=`root`@`localhost` FUNCTION `UF_Get_tMaxCode`( 
  V_iType INT 
) RETURNS varchar(10) CHARSET utf8 
BEGIN 
/* 
业务描述:根据编码类别产生编码 
 
输入参数: 
V_iType:编码类别,定义建tMaxCode的iType字段的定义 
 
调用示例: 
SELECT UF_Get_tMaxCode(1); 
 
创建日期: 
创建人: 
 
*/ 
DECLARE iCode INT; 
 
IF V_iType IN (1,3) 
  
 
THEN 
#非订单类 
IF EXISTS (SELECT dtLast FROM tMaxCode WHERE iType=V_iType LIMIT 0,1) 
THEN   
SELECT IFNULL(iMax,0)+1 INTO iCode FROM tMaxCode WHERE iType=V_iType; 
ELSE 
SET iCode=1; 
END IF; 
SELECT IFNULL(iMax,0)+1 INTO iCode FROM tMaxCode WHERE iType=V_iType; 
ELSE 
#订单类 
IF EXISTS (SELECT iMax FROM tMaxCode WHERE iType=V_iType AND DATEDIFF(dtLast,CURRENT_DATE)=0 LIMIT 0,1) 
THEN   
#上次生成时间是当天 
  SELECT IFNULL(iMax,0)+1 INTO iCode FROM tMaxCode WHERE iType=V_iType; 
ELSE 
SET iCode=1; 
END IF; 
END IF; 
 
IF EXISTS (SELECT iMax FROM tMaxCode WHERE iType=V_iType LIMIT 0,1) 
THEN   
UPDATE tMaxCode 
SET  
iMax=iCode, 
dtLast=CURRENT_DATE 
WHERE 
iType=V_iType; 
ELSE   
INSERT INTO tMaxCode (iType,iMax,dtLast) 
SELECT V_iType,iCode,CURRENT_DATE; 
END IF; 
 
IF V_iType IN (1,3) 
THEN 
#非订单类编码   
RETURN CONCAT('',iCode); 
ELSE 
#订单类编码 
IF iCode BETWEEN 1 AND 9 
THEN 
RETURN CONCAT('0000',iCode); 
ELSEIF iCode BETWEEN 10 AND 99 
THEN   
RETURN CONCAT('000',iCode); 
ELSEIF iCode BETWEEN 100 AND 999 
THEN   
RETURN CONCAT('00',iCode); 
ELSEIF iCode BETWEEN 1000 AND 9999 
THEN   
RETURN CONCAT('0',iCode); 
ELSE//开源代码phprm.com 
RETURN CONCAT('',iCode); 
  END IF; 
  END IF; 
END 
$$ 
 
DELIMITER ;


文章地址:

转载随意^^请带上本文地址!