生成的订单编号类似:

CREATE DEFINER=`root`@`%` PROCEDURE `p`(IN table_name varchar(50),IN filed_name varchar(50) ,IN orderNamePre varchar(10) ,in num INT )

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 '' ;-- 离现在最近的满足条件的订单编号   SET @sqlcmd = concat('select * from ', tbl);

DECLARE padstrlength int DEFAULT 3;

-- DECLARE num INT DEFAULT 6 ;

-- declare orderNamePre varchar(10) DEFAULT 'PROCESS';

declare prelength INT ;

SET prelength = LENGTH(orderNamePre);

IF num = 6 THEN

SELECT DATE_FORMAT(NOW(), '%y%m%d') INTO currentDate ;-- 根据年月日生产订单编号

ELSEIF 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 ;

-- 预处理指令的使用

SET @sqlcmd = CONCAT('SELECT IFNULL(',filed_name,', \'\') into @oldNo',

' from ', table_name,

' WHERE' ,

' SUBSTRING(',filed_name,',', prelength  +  1,',',num,') = \'',currentDate,'\'',

' AND SUBSTRING(',filed_name,',1',',',prelength,') = \'',orderNamePre,'\'',

' AND LENGTH(',filed_name,') = ',prelength + padstrlength + num ,

' ORDER BY id DESC LIMIT 1 ;'

);

prepare stmt from @sqlcmd;

execute stmt;

deallocate prepare stmt;

set oldOrderNo = @oldNo;

IF oldOrderNo != '' THEN

SET maxNo = CONVERT(SUBSTRING(oldOrderNo, 0 - padstrlength),DECIMAL);-- 截取订单号后面的序列号,然后转换为DECIMAL类型变量

END IF;

SELECT CONCAT(orderNamePre,currentDate,LPAD((maxNo + 1),padstrlength,'0')) as neworderno;-- 拼接新订单号,最大订单序列号加1,如果总位数小于padstrlength,就在左边补0

end

调用:

call p('表名','订单号字段名','订单号前缀','时间类型');

标签:存储,name,MySQL,订单,num,编号,currentDate,DECLARE

来源: https://blog.csdn.net/u010042669/article/details/89516027

mysql 存储订单,MySQL使用存储过程生成订单编号相关推荐

  1. mysql序列表,自增序列生成合同编号

    项目中使用mysql数据库,需要使用自增序列号生成合同编号,编号按年份每年更新,且根据合同模板不同需使用多个自增序列.为了考虑拓展性,也方便其他业务使用序列,使用了序列表进行集中管理,使用函数操作序列 ...

  2. php订单号递增,PHP生成订单号的两种方法

    在开发项目的时候经常有生成订单号的需求,这里列出两种生成20位订单号的常用方法. 方法一: 以下代码是14位当前时间加6位随机数,如果增减位数,只需修改末尾的数字6即可.<?php functi ...

  3. mysql 存储过程逻辑表达 and_MySQL - 存储过程 (二)- 逻辑判断语句

    MySQL - 存储过程 (二)- 逻辑判断语句 一, if 语句: IF(expr1,expr2,expr3) 如果 expr1 是 TRUE (expr1 <> 0 and expr1 ...

  4. mysql 存储 结构,mysql目录与存储结构(一)

    mysql索引与存储结构(一) 首先从一个问题说起. 问题现象: 查询语句如下: -- sql1 SELECT w.wid, w.rid FROM warestock w JOIN product p ...

  5. mysql存储指纹,mysql - ZKTeco 4500指纹验证 - 堆栈内存溢出

    仅需要一些有关如何从mySQL数据库上的已存储字节模板中验证指纹的帮助,我已经在数据库中存储了BYTES模板,但是我无法进行验证. 表名是finger_template,列是byte_template ...

  6. 用存储过程生成记录编号

    CREATE procedure up_GetBeautifulOrderNumber(@orderNumber char(12) out) as begin declare @number char ...

  7. 【MySQL】MySQL 存储引擎、索引、锁、集群

    MySQL存储引擎 MySQL体系结构 体系结构的概念任何一套系统当中,每个部件都能起到一定的作用! MySQL的体系结构 体系结构详解 客户端连接 支持接口:支持的客户端连接,例如C.Java.PH ...

  8. 淘淘商城第113讲——生成订单

    本讲我们将一起学习下如何生成订单. 数据库表设计分析 订单表 我们先来看下tb_order表的结构,如下图所示. 可以看到: 从订单表的结构中还可以看到create_time.buyer_nick.s ...

  9. php根据当天日期生成编号,前台js根据当前时间生成订单号

    *********前台显示框**************** **************js代码***************** function GetDateNow() { var vNow ...

最新文章

  1. linux各版本使用率,Windows10系统各版本份额出炉:十月更新占有率不高。
  2. 让服务器接近最终用户能解决性能问题吗?——微云网络
  3. java ++i、i++、i++ + ++i、i++ + i++原理
  4. 【LeetCode笔记】198. 打家劫舍(Java、动态规划)
  5. java面试题_Java面试题总结(2020年多家公司整理的300道Java面试题手册)
  6. Windows xp+Ubuntu 11.10 硬盘安装
  7. informix的常用SQL语句
  8. 空调微型计算机控制,空调自动控制
  9. Attention注意力机制总结
  10. JAVAWeb项目 微型商城项目-------(四)用户注册
  11. c51步进电机程序汇编语言,51单片机驱动步进电机(汇编语言)
  12. Jmeter使用函数助手生成随机数,处理同一个随机数多处使用
  13. COOKIE与SESSION比较
  14. 在学习JAVA过程中,你遇到的最大的困难是什么?
  15. 1071: 数塔 (动态规划)
  16. cannal 启动异常(show master status‘ has an error pls check. you need (at least one of) the SUPER,REPLI)
  17. 用计算机计算棋盘上麦粒,C棋盘上的麦粒 ——用电子表格自动计算 教学设计...
  18. 9.nodejs 内置模块
  19. 计算机科学与技术考研难度排行,考研专业的难度排名
  20. php 获取当前时间的农历,获取阴历(农历)和当前日期的js代码_javascript技巧

热门文章

  1. CTF攻防世界之我在里面当炮灰(1)
  2. 零基础转IT,软件测试和云计算运维怎么选?
  3. 几种炫酷的canvas动态背景特效
  4. python代码调用笔记本摄像头
  5. Multisim中创建LM386元件
  6. python统计csdn个人博客文章清单及字数
  7. 射频功率衰减器一般采用电阻元件,有两种主要电路形式:π型和T型
  8. 电商做软文营销的六招
  9. cocos2d for iphone development
  10. 华为任正非,道歉了。。。