mysql 生成流水号 存储过程 订单编号

用存储过程生成流水号是很常用的,这里以生成订单编号的流水号作为示例。(新的一天的流水号从1开始,如:今天的订单编号是CD2013 0109 00014 ,下一个订单编号将是 CD 2013 0109 00015 ; 明天的订单编号将从 CD 2013 0110 00001 开始) 生成规则:2位前缀

用存储过程生成流水号是很常用的,这里以生成订单编号的流水号作为示例。(新的一天的流水号从1开始,如:今天的订单编号是cd2013010900014,下一个订单编号将是cd2013010900015;明天的订单编号将从cd2013011000001开始)

生成规则:2位前缀+年月日+5位流水号 或者 2位前缀+年月日时分+5位流水号 或者 2位前缀+年月日时分秒+5位流水号。

测试订单表(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):

CREATE DEFINER=PROCEDURE `generate_orderNo`(in orderNamePre char(2), in num int, out newOrderNo varchar(25))  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     elseif num = 14 then -- 根据年月日时分秒生成订单编号       SELECT DATE_FORMAT(NOW(), '%Y%m%d%H%i%s') INTO currentDate ; -- 订单编号形式:前缀+年月日时分秒+流水号,如:SH2013011010050700001,个人不推荐使用这种方法生成流水号     else -- 根据年月日时分生成订单编号       SELECT DATE_FORMAT(NOW(), '%Y%m%d%H%i') INTO currentDate ;-- 订单形式:前缀+年月日时分+流水号,如:SH20130110100900005     end if ;        SELECT IFNULL(orderNo, '') INTO oldOrderNo     FROM test_orders     WHERE SUBSTRING(orderNo, 3, num) = currentDate       AND SUBSTRING(orderNo, 1, 2) = orderNamePre       and length(orderNo) = 7 + num    ORDER BY id DESC LIMIT 1 ; -- 有多条时只显示离现在最近的一条         IF oldOrderNo != '' THEN       SET maxNo = CONVERT(SUBSTRING(oldOrderNo, -5), DECIMAL) ;-- SUBSTRING(oldOrderNo, -5):订单编号如果不为‘‘截取订单的最后5位     END IF ;    SELECT       CONCAT(orderNamePre, currentDate,  LPAD((maxNo + 1), 5, '0')) INTO newOrderNo ; -- LPAD((maxNo + 1), 5, '0'):如果不足5位,将用0填充左边         INSERT INTO test_orders (orderNo, orderName) VALUES (newOrderNo, 'testNo') ; -- 向订单表中插入数据   --    set newOrderNo = l_orderNo;     SELECT       newOrderNo ;  END

登录后复制

参数说明:orderNamePre:(输入)订单编号的前缀,这里设定为两个字符
                  num:(输入)将按什么规则生成流水号(生成规则有:年月日、年月日时分秒、年月日时分三种),可选的num有:8、12、14
                  newOrderNo:(输出)新生成的订单编号

生成中的一些说明在存储过程中已经写得很明确了,这里不再重复。

调用存储过程向表中插入数据:

SET @orderNo = '';  CALL `generate_orderNo`('SH', 12, @orderNo);  SELECT @orderNo;

登录后复制

查看生成的数据(我这里调用了很多次,所以生成的数据很多):

mysql 生成流水号 存储过程 订单编号        mysql 生成流水号 存储过程 订单编号

在实际项目中只需要修改其中的一些生成规则即可,到此为止,流水号的生成就搞定了,是不是很简单 mysql 生成流水号 存储过程 订单编号

有关mysql存储过程的知识可以参考我的这篇文章:MySQL存储过程详解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1668893.html

(0)
上一篇 2025年2月19日 08:21:13
下一篇 2025年2月19日 08:21:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 黄金回收的称重计算价格的过程看这里!

      很多朋友们家中是否也有一些空置的奢侈品,比如说钻石耳坠项链、黄金珠宝、名表名包什么的放在家里很浪费,其实多余的奢侈品都可以选择一下去二手奢侈品交易市场回收变现的,毕竟二次利用这些奢侈品,能够创造新的价值。在回收黄金之前,有必要检查黄金珠…

    2025年5月25日
    1700
  • 回收黄金过程中有哪些掺假过程?

     许多人认为回收黄金很简单,只需要一个鉴定人来看一看,但事实并非如此  鉴定人有特定的工作流程,因为有许多假冒伪劣产品,其中一些是肉眼看不见的。当黄金首饰的程序是什么? 关于足金回收的时候应该注意一些什么问题,小编想说其实在黄金回收店里面,…

    2025年5月24日
    1800
  • 黄金回收在机构里还有怎样的一些过程?

     黄金回收是现在的一项常见业务。许多人典当一些黄金产品来换钱。  黄金回收所需的几个步骤  黄金回收首先要做好鉴定工作  毕竟,黄金市场现在是不平衡的。  在一定程度上,一个好的评价可以避免被欺骗。  一般来说,黄金可以通过观察颜色、做标记…

    2025年5月24日
    1900
  • 黄金珠宝和金条的回收过程一般是什么?

    中国人长期喜爱珠宝,因为它不仅保存价值的功能体现了中国几千年的古老文化。佩戴金银是财富和威望的象征,也是身份和地位的象征。为什么大家都说黄金回收价行情还不错的呢,实际上是因为这个含金量的问题,回收黄金就看这个,在黄金回收店里面的话也会检测含…

    2025年5月24日
    1600
  • 黄金回收价前以及过程你真的了解吗?

      关于黄金回收的价钱很多消费者感觉和交易所黄金价不符合,首先,交易所报价与原材料价格相似,每个人佩戴的黄金首饰上基本上都有一些焊剂。消费者其实还是有很多准备投资的,金饰回收就没有想象中划算,就会考虑黄金这一方面,比方说时这个收黄金就比较值…

    2025年5月23日
    1800
  • 黄金珠宝和金条的回收过程是怎么样的?

      投资金条、金币、金矿材料、砂金和工业金粉、金水等可用于黄金回收。黄金回收工艺有很多种,但它们的回收工艺大体相同。现在回收黄金是多少钱呢?关于这个当前的一个黄金回收价钱的市场价格时没注意的呢,还有就是其实找一家专业的黄金回收店去了解行情也…

    用户投稿 2025年5月23日
    1800
  • 金条回收过程复杂吗?

      金条回收过程复杂吗?金条起源于古代的货币流通,更多地用于收集和投资领域。世界上主要的银行和金融机构储备和流通有自己签名的金条。例如,上海黄金回收所的标准金条。小编辑今天想和大家讨论一下金条回收过程是否复杂?   金条回收过程复杂吗?金条…

    用户投稿 2025年5月23日
    1600
  • 黄金回收变现过程麻烦吗?

      黄金回收变现过程麻烦吗?受存储、流通和现金变现等问题的制约,实物黄金的投资模式受到挑战。黄金回收变现过程麻烦吗?   黄金回收变现过程麻烦吗?除了菜百等金店是回收金条的主要渠道外,银行和当铺也是兑现黄金的少数选择。据了解,大多数商业银行…

    2025年5月20日
    1700
  • 附近哪里有黄金回收?卖黄金的过程是什么?

      黄金回收(又称黄金变现)是对黄金或含金物品的回收。回收的基本目的是实现或再利用。与一般商品回收不同,黄金回收形成独特的回收体系,包括称重、定色、定价。不考虑黄金回收的品牌,黄金回收的主要价格因素取决于含金量和国际基本交易价格,那么附近的…

    2025年5月19日
    1900
  • 场所码生成不出来怎么办

    场所码是比较常见的一种信息码,它是出入公共场所需要出示的一个二维码,可以显示个人的健康状态,这个一般都是用手机扫描出来的,有些人场所码生成不出来,这种多半可能是网络不好,或者是手机权限等问题。 场所码生成不出来怎么办 通常可以生成场所码。如…

    2025年5月15日 用户投稿
    605.8K00

发表回复

登录后才能评论