需求生成一个单据编号
单据编号结构: “单据类型” + “日期” + “流水号”
例子 : 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 ;