我是靠谱客的博主 落寞天空,最近开发中收集的这篇文章主要介绍mySQL生成用户编码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

系统中经常有一些编码需要生成,以下是生成编码的设计。

下面OPC,DB,EB生成编码的时候要求不带4。

通过调用函数的方式如:SELECT f_getmaxid(1)就可以得到对应的编码。

表设计:

CREATE TABLE `t_sys_maxid` (
`tagid` int(8) NOT NULL COMMENT '识别号',
`maxno` int(11) NOT NULL COMMENT '最大号',
`idlen` tinyint(4) NOT NULL COMMENT '最大号',
`idpre` varchar(4) NOT NULL COMMENT '前缀',
`isid` char(1) NOT NULL COMMENT '是否是字符ID',
PRIMARY KEY (`tagid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

调用函数:

DELIMITER $$
USE `weipansettlementdb0420`$$
DROP FUNCTION IF EXISTS `f_getmaxid`$$
CREATE DEFINER=`weipan_jy`@`%` FUNCTION `f_getmaxid`(p_tagid TINYINT) RETURNS VARCHAR(10) CHARSET utf8
MODIFIES SQL DATA
BEGIN
DECLARE v_idlen TINYINT;
#总长度
DECLARE v_isid CHAR(1);
#是否是ID
DECLARE v_i INT DEFAULT 1;
#循环变量
DECLARE v_j INT DEFAULT 1;
#循环变量
DECLARE v_num INT DEFAULT 1;	#排除4的变量
DECLARE v_numlen INT;
#排除4变量的长度
DECLARE v_index INT;
#4出现的位置
DECLARE v_zerocnt INT;
#加零数量
DECLARE v_id VARCHAR(10);
#返回的ID;
DECLARE v_idpre VARCHAR(4);	#前缀
UPDATE t_sys_maxid SET maxno=1+@mno:=maxno,isid=@isid:=isid
WHERE tagid=p_tagid;
SELECT idpre INTO v_idpre
FROM t_sys_maxid WHERE tagid=p_tagid;
IF (v_idpre='OPC' OR v_idpre='DB' OR v_idpre='EB') THEN
SET v_numlen=LENGTH(CONVERT(@mno+1,CHAR(10)));
SET v_index=LOCATE('4', CONVERT(@mno+1,CHAR(10)));
IF v_index > 0 THEN
SET v_index=v_numlen-v_index;
IF v_index > 0 THEN
WHILE v_j<=v_index DO
SET v_num=v_num*10;
SET v_j=v_j+1;
END WHILE;
END IF;
UPDATE t_sys_maxid SET maxno=maxno+v_num
WHERE tagid=p_tagid;
END IF;
END IF;
IF @isid='Y' THEN
SELECT idpre,idlen,isid INTO v_id,v_idlen,v_isid
FROM t_sys_maxid
WHERE tagid=p_tagid;
SET v_zerocnt=v_idlen-LENGTH(CONCAT(CONVERT(@mno,CHAR(10)),v_id));
WHILE v_i<=v_zerocnt DO
SET v_id=CONCAT(v_id,'0');
SET v_i=v_i+1;
END WHILE;
SET v_id=CONCAT(v_id,TRIM(CONVERT(@mno,CHAR(10))));
ELSE
SET v_id=TRIM(CONVERT(@mno,CHAR(10)));
END IF;
RETURN v_id;
END$$
DELIMITER ;

转载于:https://www.cnblogs.com/CarlBlogs/p/7405424.html

最后

以上就是落寞天空为你收集整理的mySQL生成用户编码的全部内容,希望文章能够帮你解决mySQL生成用户编码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部