测试订单表(test_orders):
CREATE TABLE 'test_orders'(
'id' int(11) NOT NULL AUTO_INCREMENT,
'orderNo' varchar(25) NOT NULL DEFAULT '',
'orderName' char(10) NOT NULL DEFAULT '',
PRIMARY KEY ('id'),
) ENGINE=InnoDB AUTO_INCREMENT=76 DEFAULT CHARSET=utf8
生成订单编号的存储过程(generate_orderNo):
BEGIN
DECLARE currentDate varCHAR (15) ;-- 当前日期,有可能包含时分秒
DECLARE maxNo INT DEFAULT 0 ; -- 离现在最近的满足条件的订单编号的流水号最后5位,如:SH2013011000002的maxNo=2
-- DECLARE l_orderNo varCHAR (25) ;-- 新生成的订单编号
-- DECLARE oldDate DATE ;-- 离现在最近的满足条件的订单编号的日期
DECLARE oldOrderNo VARCHAR (25) DEFAULT '' ;-- 离现在最近的满足条件的订单编号
if num = 8 then -- 根据年月日生成订单编号
SELECT DATE_FORMAT(NOW(), '%Y%m%d') INTO currentDate ;-- 订单编号形式:前缀+年月日+流水号,如:SH2013011000002