您的位置:首页 > 数据库 > MySQL

MySQL生成-单据号不重复

2016-05-24 14:57 381 查看
需求生成一个单据编号

单据编号结构: “单据类型” + “日期” + “流水号”

例子 : GD201605230000007

代码:

DELIMITER $$

CREATE

PROCEDURE `yunzhi`.`auto_no`(IN billType CHAR(2))

BEGIN
DECLARE v_timestr VARCHAR(8);
DECLARE v_cnt INT;
DECLARE rowcount BIGINT;

-- 当前日期(8位短日期)
SET v_timestr = DATE_FORMAT(NOW(), '%Y%m%d');
SELECT CONCAT(billType,v_timestr) INTO v_timestr;

SET autocommit = 0;
UPDATE no_seq SET sn = (sn + 1) WHERE timestr = v_timestr;

IF ROW_COUNT() = 0 THEN
INSERT INTO no_seq(timestr,sn) VALUE (v_timestr,1);
END IF;

SELECT CONCAT(v_timestr,LPAD(sn,7,0)) AS sn
FROM no_seq WHERE timestr = v_timestr;
COMMIT;
END$$

DELIMITER ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: