mysql创建自增长订单号_mysql 创建自增长订单号

因为最近做项目需要,需要使用到,自定义的不重复的自增长的订单号,在网上找了资料然后又加入了自己的修改,做成的mysql生成订单号的存储过程。 drop PROCEDURE pp; create procedure PROC_GET_NO (tname varchar(50),cname VARCHAR(50),prefix VARCHAR(20))    begin      #最终生成的订单号     declare order_sn VARCHAR(20);   #当前系统中的订单号     declare prev VARCHAR(15);      #旧的日期     declare prevdatetime VARCHAR(15);   #截取到的编号     declare sn BIGINT(15);      #当前的系统时间     declare nowdate VARCHAR(15);     # 获得当天的最后一条记录编号 判断数据库中的创建日期是否大于当前日期 也就等于是是否是当天的单据    set @pre = prefix;    set @na=tname;      set @cna = cname;      set @sql_text:='select MAX(';    set @sql_text := CONCAT(@sql_text,@cna,') into @recordcount from ');    set @whe :=' WHERE create_date > CURRENT_DATE()';      set @sql_text:=concat(@sql_text,@na,@whe);      prepare stmt from @sql_text;      execute stmt;     set prev = @recordcount;   #截取日期     select SUBSTR(prev FROM 2 FOR 9) into prevdatetime;   #截取编号     select RIGHT(prev,5) into sn;   #获得当前的时间 使用now()函数 获得的格式是2014-05-28 11:20:18 然后在获取自己想要的数据     select DATE_FORMAT(NOW(),'%Y%m%d') into nowdate;     #判断最后一条记录是否为空     if isnull(prev) then         select concat(@pre,nowdate,'00001') into order_sn;             #return order_sn;         elseif nowdate = prevdatetime then             select concat(@pre,nowdate,'00001') into order_sn;             #return order_sn;         else         select concat(@pre,prevdatetime,LPAD((sn+1),4,'0'))into order_sn;         #return order_sn;         end if; select order_sn;      end; CALL pp('quotation','quotation_no','O')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值